问题
我试过以下来源 . 但发生了错误'Validation failed for object' .
由此链接引用(http://bitbybitblog.com/forms-and-data-models-in-spring-mvc/) .
我想如何形成数据(输入值)发送到控制器的模型'Shop'没有任何错误 .
我认为无与伦比的模型'Shop'和HTML表单数据 . 无法弄清楚解决方案 .
如何修复'tag'输入名称?
来源
public class Tag {
private Long id;
private String name;
private Date regDate = new Date();
}
public class Shop {
private Long id;
private String name;
private String url;
private String featureImagePath;
private List<Tag> tag = new ArrayList<>();
private ShopStatus status = ShopStatus.SHOW;
private Date expireDate;
private Date updateDate;
private Date regDate;
}
Controller
@RequestMapping(value = "/edit/update", method = RequestMethod.POST)
public String update(@ModelAttribute Shop shop) {
if (shop.getId() == null) {
shopService.createShop(shop);
}
return "redirect:/";
}
HTML/Thymeleaf
<form name="editor" method="post" action="/edit/update">
<fieldset>
<input name='name' th:value='${data.name}'/>
<input name='tag[0].id'/><input name='tag[0].name'/>
</fieldset>
</form>
结果
发生此问题然后在浏览器上提交表单“编辑器” .
此应用程序没有/ error的显式映射,因此您将此视为回退 . 出现意外错误(type = Bad Request,status = 400) . object ='shop'的验证失败 . 错误计数:1
1 回答
我的来源没有问题 . 发生了另一面 .
实际上HTML方面有'expireDate'输入 . 但是发送到控制器 NULL value 的输入(模型'Shop'没有定义默认值) .
这是我的错 .
另外,如果按照控制器源下方的话,我们可以使用没有'th:object'的 "FORM" .
Controller