我有一个从init binder.setValidatior()验证的表单。但是,我有一个控制器方法,一旦完成,返回重定向,验证函数中的错误不会绑定到窗体上的errors元素。如何才能将错误绑定并仍然使用重定向。
需要重定向,因为url具有重建页面所需的数据。控制器功能是:
控制器
@RequestMapping(value = "monitoringList_save.htm", method = RequestMethod.POST)
public ModelAndView handleSaveMonitoringRecord(@Valid @ModelAttribute Monitoring monitoring, BindingResult result,ModelMap m,
HttpServletRequest request,SessionStatus status, HttpSession session,Model model) throws Exception {
if(result.hasErrors()){
return new ModelAndView(new RedirectView("monitoringList.htm"),"page",0);
//return new ModelAndView("monitoringList");
}
return new ModelAndView(new RedirectView("monitoringList.htm"),"page",0);
}
如果我return new ModelAndView("monitoringList");
,那么页面中的信息就会丢失。
答案 0 :(得分:1)
答案 1 :(得分:0)
解决方案是将对象的旧实例添加回视图,显然它是绑定到验证器结果而不是视图的对象。解决方案是添加:
if(result.hasErrors()){
model.addAttribute("monitoring", monitoring);
return new ModelAndView(new RedirectView("monitoringList.htm"),"page",0);
//return new ModelAndView("monitoringList");
}