0

我有一个从 init binder.setValidatior() 得到验证的表单。但是,我有一个控制器方法,一旦完成,验证函数的错误不会绑定到表单上的错误元素。我怎样才能让错误绑定并仍然使用重定向。

需要重定向,因为 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");了,那么页面中的信息就会丢失。

4

2 回答 2

1

您可以使用 Flash 属性:http: //viralpatel.net/blogs/spring-mvc-flash-attribute-example/

于 2013-05-03T20:57:48.037 回答
0

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

 if(result.hasErrors()){
            model.addAttribute("monitoring", monitoring);
            return new ModelAndView(new RedirectView("monitoringList.htm"),"page",0); 
            //return new ModelAndView("monitoringList");
        }
于 2013-05-03T21:11:08.003 回答