我正在使用Spring MVC 3.0并且无法完全看到此问题的所有部分:我的控制器将生成一个域对象列表。假设一个带有firstName,lastName,age和role属性的简单User对象。我想在表中输出该用户列表(每个属性一列),每行还有一个默认选中的复选框。然后,使用该页面的人可能会取消选择其中一些页面。当他们点击提交按钮时,我希望能够获取所选用户的列表并对其进行操作。
我知道Spring中有一个form:checkboxes标签,但是我不太清楚如何使用它以及如何在控制器中获得结果。
任何帮助或建议?
答案 0 :(得分:21)
如果User
对象有一个id
字段,您可以像这样提交所选用户的ID(在这个简单的场景中,您甚至不需要Spring的表单标记):
<form ...>
<c:foreach var = "user" items = "${users}">
<input type = "checkbox" name = "userIds" value = "${user.id}" checked = "checked" /> <c:out value = "${user.firstName}" /> ...
</c:foreach>
...
</form>
-
@RequestMapping (...)
public void submitUsers(@RequestParam(value = "userIds", required = false) long[] userIds)
{
...
}
答案 1 :(得分:1)
当一个页面包含一个复选框并且其中包含的表格已经提交时,浏览器会执行以下操作。
在您的情况下,我会将@RequestParam(“abono”)更改为@RequestParam(required = false,value =“abono”),然后检查您的Boolean是否为null。如果为null,则用户不勾选该复选框。