如何使用提交表单发布儿童对象的arraylist?

时间:2018-05-23 13:31:18

标签: html spring forms thymeleaf

我正在尝试发布一个表单,看看当某些字段中存在错误时会发生什么。

我使用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) {

发布后,所有值都已设置,我看到了错误,但没有看到这两个字段。

1 个答案:

答案 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) {