2015-10-22 55 views
2

目前我正在使用Spring Boot 1.2.7和freemarker作为页面模板引擎的项目。Spring Boot应用程序表单验证被拦截/错误页面

我想像以前一样使用Bean验证,但它不能按预期工作。

@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验证失败,它重定向到春季启动内置/错误页面,而不是在注册页面显示错误消息。

+0

你能给SignupForm的更多的代码和的ModelAttribute? –

回答

0

您的问题在SignupForm对象和signup模型属性中。 Spring不能映射两者。

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