我一直在寻找一种在 Spring MVC 3 中使表单验证尽可能简单和不显眼的方法。我喜欢 spring 通过将 @Valid 传递给我的模型(已使用验证器注释进行注释)并使用result.hasErrors() 方法。
我正在设置我的控制器操作,如下所示:
@RequestMapping(value = "/domainofexpertise", method = RequestMethod.PUT)
public String addDomainOfExpertise(@ModelAttribute("domainOfExpertise")
@Valid DomainOfExpertise domainOfExpertise, final BindingResult result) {
if (result.hasErrors()) {
return "/domainofexpertise/add";
} else {
domainOfExpertiseService.save(domainOfExpertise);
return "redirect:/admin/domainofexpertise/list";
}
}
这就像一个魅力。数据库异常(例如尝试在字段上保存具有唯一约束的内容)仍然可以通过。有没有办法在幕后进行的验证过程中捕获这些异常?这种验证方式非常简洁,所以我想避免在我的控制器中手动捕获它们。
有这方面的信息吗?