Spring引用应用程序表单验证由/错误页面拦截

时间:2015-10-22 12:10:41

标签: spring spring-mvc spring-boot

目前我正在开发一个使用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 页面,而不是在注册页面中显示错误消息。

2 个答案:

答案 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";
}