目前我正在开发一个使用Spring Boot 1.2.7和freemarker作为页面模板引擎的项目。
我正在尝试像以前一样使用Bean Validation,但它无法按预期工作。
@RequestMapping(value = "/signup", method = RequestMethod.POST)
public String signup(@Valid @ModelAttribute("signup") SignupForm signup, BindingResult result) {
log.debug("signup form @" + signup);
if (result.hasErrors()) {
return "/signup";
}
//AccountDetails details = accountService.register(form);
return "redirect:/login";
}
当bean验证失败时,它会重定向到Spring Boot内置的 / error 页面,而不是在注册页面中显示错误消息。
答案 0 :(得分:0)
您在SignupForm
对象和signup
模型属性中的问题。 Spring无法映射两者。
答案 1 :(得分:0)
您需要重定向到注册页面,例如:
@RequestMapping(value = "/signup", method = RequestMethod.POST)
public String signup(@Valid @ModelAttribute("signup") SignupForm signup, BindingResult result) {
log.debug("signup form @" + signup);
if (result.hasErrors()) {
return "signup";
}
//AccountDetails details = accountService.register(form);
return "redirect:/login";
}