我正在开发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";
}
}
答案 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";
}
}