Java Form提交表单问题

z22708387 2018-02-02 05:04:57
界面:

<input type="text" id="txtId" name="complId" value="123123123"></input>
<input type='checkbox'
name="" class='cboCenter'
style='margin: 0px;' value="11111"></input>
<input type='checkbox'
name="" class='cboCenter'
style='margin: 0px;' value="22222"></input>
<input type='checkbox'
name="" class='cboCenter'
style='margin: 0px;' value="33333"></input>
<input type='checkbox'
name="" class='cboCenter'
style='margin: 0px;' value="44444"></input>

以上Html同时都在一个Form内.

我后台定义了一个ResponsibilityVo的实体.

public class ResponsibilityVo {
private long complId;
private List<ResponsibilityDetailVo> detail;

public long getComplId() {
return complId;
}

public void setComplId(long complId) {
this.complId = complId;
}

public List<ResponsibilityDetailVo> getDetail() {
return detail;
}

public void setDetail(List<ResponsibilityDetailVo> detail) {
this.detail = detail;
}
}

而checkbox其实是实体ResponsibilityDetailVo的一个订单号集合(list类型)

public class ResponsibilityDetailVo {
private List<Long> orderList;

public List<Long> getOrderList() {
return orderList;
}

public void setOrderList(List<Long> orderList) {
this.orderList = orderList;
}
}

form提交后台代码

@RequestMapping("/aa")
@ResponseBody
public JSONObject aa(HttpServletRequest request, HttpServletResponse response, Model model,
ResponsibilityVo vo) {
JSONObject json = new JSONObject();

return json;
}

问题:
from提交时,vo能够获取到complId,但是不知道如何获取detail中的orderlist。
但是我不知道如何来定义checkbox的name。因为form提交实体的话,name需要与实体的属性名称、大小写一致。
注意:我想把前面2个checkbox当成detail[0]提交,后面2个checkbox当成detail[1]提交.
在线等!

...全文
604 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxl311608 2018-02-06
  • 打赏
  • 举报
回复
spring-mvc好像是不支持List类型复杂的参数注入的吧; 你可以尝试一下spring提供的自定义参数实现; 参考一下: https://www.cnblogs.com/A-smile/p/8024727.html
Sunyiban 2018-02-05
  • 打赏
  • 举报
回复
引用 5 楼 z22708387 的回复:
另外,若使用TextBox,是可以解决传参问题。

<input type="text" id="txtA" name="detail[0].orderList[0]" value="1111"></input> 
<input type="text" id="txtB" name="detail[0].orderList[1]" value="222222"></input>
<input type="text" id="txtC" name="detail[1].orderList[0]" value="1111"></input> 
<input type="text" id="txtD" name="detail[1].orderList[1]" value="222222"></input>
可是CheckBox我不知道要如何来写这个Name
你用bean接收参数这个name肯定就是字段名,这个是死的呀,不能修改的。至于你传回去是string 还是 list这个是你的参数值来决定不是name 决定。你还想在传参数的时候顺便设置后台list这个是做不到的吧
z22708387 2018-02-05
  • 打赏
  • 举报
回复
没人知道如何解吗?
z22708387 2018-02-02
  • 打赏
  • 举报
回复
另外,若使用TextBox,是可以解决传参问题。

<input type="text" id="txtA" name="detail[0].orderList[0]" value="1111"></input> 
<input type="text" id="txtB" name="detail[0].orderList[1]" value="222222"></input>
<input type="text" id="txtC" name="detail[1].orderList[0]" value="1111"></input> 
<input type="text" id="txtD" name="detail[1].orderList[1]" value="222222"></input>
可是CheckBox我不知道要如何来写这个Name
z22708387 2018-02-02
  • 打赏
  • 举报
回复
引用 3 楼 zzywjing 的回复:
没看到你checkbox的name,name名字一样就可以,然后后面用reqeuest取数组的那个方法去,不行的话,前面用js拼接成字符串传给后台
我现在就是不知道checkbox的name如何来写。卡在这儿了。因为同组的checkbox要同名。但是checkbox又是list集合。
z22708387 2018-02-02
  • 打赏
  • 举报
回复
引用 1 楼 xwn_2016 的回复:
在submit事件中对参数封装下再请求后台吧
因为list太多,我只是举了一部分例子。如果写业务逻辑,js会很长。
zzywjing 2018-02-02
  • 打赏
  • 举报
回复
没看到你checkbox的name,name名字一样就可以,然后后面用reqeuest取数组的那个方法去,不行的话,前面用js拼接成字符串传给后台
xwn_2016 2018-02-02
  • 打赏
  • 举报
回复
在submit事件中对参数封装下再请求后台吧

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧