2013-05-03 40 views
0

我有一個表單從init binder.setValidatior()獲得驗證。然而,我有一個控制器方法返回一個重定向,一旦完成,來自驗證函數的錯誤不會綁定到窗體上的錯誤元素。我如何得到錯誤綁定,仍然使用重定向。SpringMVC返回頁面重定向驗證錯誤

重定向是必需的,因爲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");然後在頁面信息丟失。

回答

1
+0

錯誤在驗證器中設置RedirectAttributes在該點無法訪問。錯誤在驗證器中設置,然後控制器只返回視圖的一個實例,並且錯誤是綁定的,參見http://jeromejaglale.com/doc/java/spring/form_validation – devdar 2013-05-03 21:05:02

0

解決的辦法是添加對象的舊實例回看,顯然其結合到驗證結果的對象,而不是視圖。解決方法是加入:

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