Spring MVC验证不会显示错误消息

时间:2014-07-31 10:46:23

标签: java spring spring-mvc spring-validator

我正在开发Web应用程序,它应该在将数据保存到数据库之前验证日期。所以我正在尝试使用那个春天的mvc验证器。但我有一个问题,表单不显示错误信息。

我的user.jsp:

<form:form class="editUser" method="POST" commandName="user">
    <form:input path="email"/>
    <form:errors path="email"/>
    other fields
</form>

我的控制器:

@RequestMapping(value = "/user/save", method = RequestMethod.POST)
public String save(@Valid @ModelAttribute("user") final User user,
        BindingResult result) throws Exception
{
    if (result.hasErrors()) {
        return "redirect:/addUser";
    } else {
        handler.saveUser(user);
        return "redirect:/userList";
   }
}

我的用户类:

public class User {
    @NotEmpty(message = "Please enter your email addresss.")
    private String email;

    other fields
}

据我在调试模式中看到的结果包含错误,如果我提交空电子邮件,但它没有显示在页面上。有人可以帮助我吗?

更新 我曾尝试使用RedirectAttributes,但它仍无效。

我的控制器:

public String save(@Valid @ModelAttribute("user") final User user,
        BindingResult result) throws Exception
{
    if (result.hasErrors()) {
        redirectAttributes.addFlashAttribute("org.springframework.validation.BindingResult.user", result);
        redirectAttributes.addFlashAttribute("errors", result.getAllErrors());
        redirectAttributes.addFlashAttribute("user", user);
        return "redirect:/addUser";
    } else {
        handler.saveUser(user);
        return "redirect:/userList";
   }
}

1 个答案:

答案 0 :(得分:3)

如果验证失败,请 redirect

示例代码:

public String save(@Valid @ModelAttribute("user") final User user,
        BindingResult result) throws Exception
{
    if (result.hasErrors()) {
        return "addUser";
    } else {
        handler.saveUser(user);
        return "redirect:/userList";
   }
}