html - 如何使用提交表单发布子对象的数组列表?
问题描述
我正在尝试发布一个表格,看看当某些字段出现错误时会发生什么。
我使用 Thymeleaf 获取对象并将其放入表单中发布的输入中。
当我在字段(BindingResults)中有错误时,除了其中两个是 ArrayList < ChildrenObject > 之外,所有字段都被正确发送
<input id="roles" name="roles" th:value="${user.roles}"/>
在我的 post 方法中,dto(用户)包含所有字段,但不包含角色。
@RequestMapping(method = RequestMethod.POST, path = "/users/{id}")
String editUser(@Valid @ModelAttribute("user") UserRestDto dto, BindingResult errors, @RequestParam String id) {
发布后,设置了所有值,我看到了错误,但没有看到这两个字段。
解决方案
我认为您需要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) {
推荐阅读
- git - 如何区分当前分支和基础,而不是输入父分支
- python - 如何使用 PyQtGraph 获得堆栈图?
- css - 有什么方法可以对齐 divi 联系表中的复选框?自定义 CSS 建议?
- python - discord py bot 触发两次 on_member_update 函数
- javascript - JavaScript - 对象属性作为函数结果,如 Array.length
- list - 我的列表 if,else 语句只返回“if”语句
- php - 引用 foreach 循环中的先前值
- python - 如何在 csv 文件的列中填充空值?
- c - 需要帮助 C 中的故障排除程序
- r - Jaccard 分析相似度