Java 带复选框的Spring MVC绑定嵌套列表

Java 带复选框的Spring MVC绑定嵌套列表,java,spring,jsp,checkbox,jstl,Java,Spring,Jsp,Checkbox,Jstl,我有一个类用户,它有一个对象角色列表: public class User{ List<Role> roles; ... 在我的控制器中,我有一个传递给JSP文件的角色的完整列表。 在JSP文件中,我想使用带有角色复选框的表单创建一个新用户。 如果选中相应的复选框,则应将角色添加到角色列表中 以下代码不起作用: <form:form method="post" action="users/add" name="addForm" modelAttribu

我有一个类用户,它有一个对象角色列表:

   public class User{

    List<Role> roles;
    ...
在我的控制器中,我有一个传递给JSP文件的角色的完整列表。 在JSP文件中,我想使用带有角色复选框的表单创建一个新用户。 如果选中相应的复选框,则应将角色添加到角色列表中

以下代码不起作用:

<form:form method="post" action="users/add"
name="addForm" modelAttribute="newUser">

    <c:forEach items="${listOfRoles}" var="r">
        <form:checkbox path="roles" value="${r}"
                    label="${r.name}" />
    </c:forEach>

<input type="submit" id="add" value="Add" />

我如何解决它?

比“不起作用”更具体一些。我们还需要控制器代码。首先,名称
用户
(控制器方法)和
新用户
(表单)不匹配!
<form:form method="post" action="users/add"
name="addForm" modelAttribute="newUser">

    <c:forEach items="${listOfRoles}" var="r">
        <form:checkbox path="roles" value="${r}"
                    label="${r.name}" />
    </c:forEach>

<input type="submit" id="add" value="Add" />
@RequestMapping(value = "/users/add", method = RequestMethod.POST)
public final String addNewUser(@ModelAttribute User newUser, final BindingResult result) {

    if (result.hasErrors()) {

    } else {
        persistence.addUser(newUser);
    }
    return "redirect:/users";
}