Spring MVC和Checkboxes

时间:2010-01-13 22:38:45

标签: java spring spring-mvc

我正在使用Spring MVC 3.0并且无法完全看到此问题的所有部分:我的控制器将生成一个域对象列表。假设一个带有firstName,lastName,age和role属性的简单User对象。我想在表中输出该用户列表(每个属性一列),每行还有一个默认选中的复选框。然后,使用该页面的人可能会取消选择其中一些页面。当他们点击提交按钮时,我希望能够获取所选用户的列表并对其进行操作。

我知道Spring中有一个form:checkboxes标签,但是我不太清楚如何使用它以及如何在控制器中获得结果。

任何帮助或建议?

2 个答案:

答案 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)

当一个页面包含一个复选框并且其中包含的表格已经提交时,浏览器会执行以下操作。

  • 如果选中该复选框,则会将其“value”属性作为值
  • 提交
  • 如果checkbos 选中,则根本不会提交变量。

在您的情况下,我会将@RequestParam(“abono”)更改为@RequestParam(required = false,value =“abono”),然后检查您的Boolean是否为null。如果为null,则用户不勾选该复选框。