Spring MVC表单没有提交价值

时间:2014-01-02 17:39:59

标签: java forms spring-mvc modelattribute

分辨率

我现在已经设法让这个工作。

这是我自己的疏忽导致了null结果,并且感谢@WillKeeling指出我将表单映射到错误的控制器方法。

我没有为要提交的表单创建新的Role对象,而是(原因不明)要求它提交User对象。

我的工作JSP&控制器如下:

<form:form method="POST" action="/users/${user.username}/addRole" modelAttribute="newRole">
    <div class="input-group">
        <span class="input-group-addon">Roles</span>
        <form:select class="form-control" path="rolename" multiple="false">
            <form:options items="${roles}" title="rolename" itemValue="rolename" itemLabel="rolename" />
        </form:select>
        <span class="input-group-addon"><input type="submit" value="Add Role" class="btn btn-xs btn-warning"/></span>
    </div>
</form:form>

控制器映射

@RequestMapping(value = "/{username}/addRole", method = RequestMethod.POST)
public String addUserRoles(@ModelAttribute("newRole") Role  newRole, @PathVariable("username") String username) {
    System.out.println(newRole.getRolename());
    return "redirect:/users/" + username;
}

原始问题

我可能会遗漏一些明显的东西,但我希望有人可以提供帮助。

我正在为我工​​作的团队构建一个访问管理系统。我在jsp(下面的代码)上有一个表单,它应该提交一个新的“角色”对象,可以在后面的存储库中处理端。

但是,当我点击提交日志报告时,该值为“null”。有人可以说明为什么会这样吗?

JSP中的表单

<form:form method="POST" action="/users/${user.username}/addRole" modelAttribute="user">
    <div class="input-group">
        <span class="input-group-addon">Roles</span>
        <form:select class="form-control" path="roles" multiple="false">
            <form:options items="${roles}" title="roles" itemValue="rolename" itemLabel="rolename" />
        </form:select>
        <span class="input-group-addon"><input type="submit" value="Add Role" class="btn btn-xs btn-warning"/></span>
    </div>
</form:form>

控制器

原始路径是/具有以下控制器的用户。

@RequestMapping(value = "/{username}/addRole", method = RequestMethod.POST)
public String addUserRoles(@ModelAttribute("user") User user) {
    System.out.println(user.getRoles());
    return "redirect:/users/" + user.getUsername();
}

控制台中的结果

Role [rolename=null]

0 个答案:

没有答案