Java Spring MVC表单未提交值 决议
我现在已经设法让它工作了 是我自己的疏忽导致了空结果,感谢@WillKeeling指出我将表单映射到了错误的控制器方法 我没有为表单创建一个要提交的新角色对象,而是出于未知的原因要求表单提交一个用户对象 我的工作JSP和控制器如下所示: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
<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]