8

我在创建一个包含在当前对象中的默认值时遇到问题。

该值已在字段中正确设置,但是当我提交表单时,默认值仍然存在,即使用户在列表中选择了另一个值...

这是我的控制器:

@RequestMapping(method = RequestMethod.GET)
public String createForm(final ModelMap modelMap){

    User user;

    user = new User();

    user.setGroup("HelpDesk");
    user.setName("John");


    ArrayList<String> groupList = new ArrayList<>();

    groupList.add("Admin");
    groupList.add("HelpDesk");
    groupList.add("GroupManager");
    groupList.add("Others");


    modelMap.addAttribute("user", user);
    modelMap.addAttribute("groupList", groupList);

    return "/user/user-add"; 
}

@RequestMapping(method = RequestMethod.POST)
public String createUser(@ModelAttribute("user") final User user, BindingResult result) {

    userValidator.validate(user, result, groupList);

    logger.info(user.getGroup()); //Will print "HelpDesk,Admin" for instance

    return "...";

}

这是我的 JSP:

<table>
    <form:form method="POST" modelAttribute="user">

        <tr>
                <td>Name:</td>
                <td><form:input path="name"/></td>
                <td><form:errors path="name" cssClass="error" /></td>
            </tr>


            <tr>
                <td>Group:</td>
                <td><form:select path="group" items="${groupList}" multiple="single"/></td>
                <td><form:errors path="group" cssClass="error" /></td>
            </tr>


            <tr>
                <td colspan="3"><input type="submit" /></td>
            </tr>

        </form:form>
    </table>

例如,如果我在选择列表中选择“管理员”,则在提交表单后,我将在用户的“组”属性中获得“帮助台,管理员”...

我究竟做错了什么?

谢谢你的帮助!

4

1 回答 1

0

我可以看到您的“POST”方法或“onSubmit”方法吗?在您的 post 方法中,您必须将 User 对象指定为您的模型属性或命令。

于 2012-12-14T03:38:23.297 回答