我正在尝试发布一个表单,看看当某些字段中存在错误时会发生什么。
我使用Thymeleaf获取对象并将其放入表单中发布的输入中。
当我在字段中有错误(BindingResults)时,除了其中两个是ArrayList<之外,所有字段都被正确发送。 ChildrenObject>
<input id="roles" name="roles" th:value="${user.roles}"/>
在我的post方法中,dto(User)包含所有字段,但不包含角色。
@RequestMapping(method = RequestMethod.POST, path = "/users/{id}")
String editUser(@Valid @ModelAttribute("user") UserRestDto dto, BindingResult errors, @RequestParam String id) {
发布后,所有值都已设置,我看到了错误,但没有看到这两个字段。
答案 0 :(得分:0)
我认为您需要在表单中定义modelAttribute="user"
:
<form:form action="/someaction" method="POST" modelAttribute="user">
例如,如果你有这样的形式:
<form:form action="/someaction" method="POST" modelAttribute="user">
...
<form:select path="users" items="${users}" multiple="true" />
...
</form>
你的Spring mvc代码应该是这样的:
@RequestMapping(value = "/someaction", method = RequestMethod.POST)
public ModelAndView someaction(@ModelAttribute(value = "user") UserRestDto user) {