【发布时间】:2021-05-18 18:54:35
【问题描述】:
使用 Spring MVC 和 Thymleaf 验证一个非常简单的 HTML 表单时出现了一个奇怪的行为。
我有编辑页面渲染和提交表单句柄的方法。
@GetMapping("/{id}")
public String editPage(@PathVariable("id") Long id, Model model) {
model.addAttribute("user", userService.findById(id)
.orElseThrow(NotFoundException::new));
return "user_form";
}
@PostMapping("/update")
public String update(@Valid UserRepr user, BindingResult result, Model model) {
logger.info("Update endpoint requested");
if (result.hasErrors()) {
return "user_form";
}
userService.save(user);
return "redirect:/user";
}
update() 方法中的连线事情是,在验证错误的情况下,具有表单内容的模型属性的名称为“userRepr”,而不是“user”,正如我所期望的那样,thymleaf 表单视图失败是因为那个。
通过重命名属性很容易解决问题,但是关于这种属性命名是否有一些约定?可以改变吗?
【问题讨论】:
标签: java spring validation spring-mvc