【发布时间】:2017-11-02 00:24:15
【问题描述】:
问题
我尝试了以下来源。但发生错误“对象验证失败”。
此链接引用(http://bitbybitblog.com/forms-and-data-models-in-spring-mvc/)。
我猜如何将数据(输入值)发送到模型“Shop”的控制器而不会出现任何错误。
我认为无与伦比的模型“商店”和 HTML 表单数据。无法找出解决方案。
如何修复“标签”输入名称?
来源
公共类标签 { 私人长ID; 私有字符串名称; 私人日期 regDate = new Date(); } 公共类商店 { 私人长ID; 私有字符串名称; 私人字符串网址; 私有字符串特征图像路径; 私有列表<Tag> tag = new ArrayList<>(); 私人 ShopStatus 状态 = ShopStatus.SHOW; 私人日期 expireDate; 私人日期更新日期; 私人日期 regDate; } 控制器@RequestMapping(value = "/edit/update", method = RequestMethod.POST) 公共字符串更新(@ModelAttribute Shop shop){ if (shop.getId() == null) { shopService.createShop(shop); } 返回“重定向:/”; } HTML/Thymeleaf
<form name="editor" method="post" action="/edit/update"> <字段集> <input name='name' th:value='${data.name}'/> <input name='tag[0].id'/><input name='tag[0].name'/> </字段集> </形式>
结果
出现这个问题然后在浏览器上提交表单“编辑器”。
此应用程序没有 /error 的显式映射,因此您将其视为后备。
出现意外错误(类型=错误请求,状态=400)。 对象='shop' 的验证失败。错误计数:1
【问题讨论】:
-
那篇关于 jsp spring 的博客文章,但是您尝试了 thymeleaf 而不是 jsp。您需要检查 thymleaf 文档。我可以看到这里缺少一些东西。表单没有 th:object 并且表单对象属性需要使用 th:field 绑定。文档在这里thymeleaf.org/doc/tutorials/2.1/…
-
@SAP 感谢您的回复。请参考这个 thymeleaf 版本是 3.x。我已经尝试多次添加“th:object”属性并检查了文档。没有'th:object'的其他页面不会发生。
-
您没有关注 Thymeleaf 文档。检查这个:thymeleaf.org/doc/tutorials/2.1/…。您没有在输入字段中包含任何属性,例如“th:field”,这些属性用于将您的字段与控制器中的 ModelAttribute 映射
-
@Afridi 我明白了。但不确定。我发现了确切的问题。谢谢你的回复
标签: html spring post spring-boot thymeleaf