Java Spring MVC表单未提交值 决议

Java Spring MVC表单未提交值 决议,java,forms,spring-mvc,modelattribute,Java,Forms,Spring Mvc,Modelattribute,我现在已经设法让它工作了 是我自己的疏忽导致了空结果,感谢@WillKeeling指出我将表单映射到了错误的控制器方法 我没有为表单创建一个要提交的新角色对象,而是出于未知的原因要求表单提交一个用户对象 我的工作JSP和控制器如下所示: <form:form method="POST" action="/users/${user.username}/addRole" modelAttribute="newRole"> <div class="input-group"&g

我现在已经设法让它工作了

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

我没有为表单创建一个要提交的新角色对象,而是出于未知的原因要求表单提交一个用户对象

我的工作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>
原始问题 我可能错过了一些明显的东西,但我希望有人能帮助我

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

但是,当我单击submit时,日志报告的值为空。有人能解释一下为什么会这样吗

JSP中的表单 结果在控制台中
您可能需要为您的角色对象添加自定义转换器。请查看WebDataBinder和PropertyEditorSupport。是否确实要将表单发布到特定的控制器方法?表单的操作是/users/${user.username}/roles,但控制器方法映射到/{username}/addRole@WillKeeling很抱歉,我会更新我的帖子。我现在已经将其映射到正确的控制器方法。这个问题仍然存在。
@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;
}
<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]