【发布时间】:2012-02-17 14:12:22
【问题描述】:
目前我正在尝试使用 Spring MVC 3.1 实现 Post/Redirect/Get 模式。保存和恢复模型数据+验证错误的正确方法是什么?我知道我可以在我的 POST 方法中使用 RedirectAttributes 保留模型和 BindingResult。但是在 GET 方法中从 flash 范围中恢复它们的正确方法是什么?
我对 POST 做了以下操作:
@RequestMapping(value = "/user/create", method = RequestMethod.POST)
public String doCreate(@ModelAttribute("user") @Valid User user, BindingResult result, RedirectAttributes rA){
if(result.hasErrors()){
rA.addFlashAttribute("result", result);
rA.addFlashAttribute("user", user);
return "redirect:/user";
}
return "redirect:/user/success";
}
以及以下获取用户创建表单:
@RequestMapping(value = "/user", method = RequestMethod.GET)
public ModelAndView showUserForm(@ModelAttribute("user") User user, ModelAndView model){
model.addObject("user", user);
model.setViewName("userForm");
return model;
}
这允许我在出现错误时保留给定的用户数据。但是恢复错误的正确方法是什么?(BindingResult)我想用spring表单标签在表单中显示它们:
<form:errors path="*" />
此外,如何从 get 方法访问 flash 范围会很有趣?
【问题讨论】:
标签: forms spring-mvc