我正在开发网络应用程序,该应用程序应该在将日期保存到数据库之前验证日期。所以我正在尝试使用 spring mvc validator 。但我有一个问题,表单不显示错误消息。
我的用户.jsp:
<form:form class="editUser" method="POST" commandName="user">
<form:input path="email"/>
<form:errors path="email"/>
other fields
</form>
我的 Controller :
@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
}
据我所知,如果我提交空电子邮件,在 Debug模式下结果会包含错误,但该错误不会显示在页面上。有人可以帮助我吗?
更新:
我尝试过使用RedirectAttributes
,但它仍然不起作用。
我的 Controller :
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";
}
}
最佳答案
不要重定向
以防验证失败。
示例代码:
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";
}
}
关于java - Spring MVC 验证不显示错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25056937/