SpringMVC通过页面重定向返回验证错误

时间:2013-05-03 20:55:12

标签: java spring spring-mvc spring-mvc-initbinders

我有一个从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");,那么页面中的信息就会丢失。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

解决方案是将对象的旧实例添加回视图,显然它是绑定到验证器结果而不是视图的对象。解决方案是添加:

 if(result.hasErrors()){
            model.addAttribute("monitoring", monitoring);
            return new ModelAndView(new RedirectView("monitoringList.htm"),"page",0); 
            //return new ModelAndView("monitoringList");
        }