2013-05-03 2 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

Вы можете использовать флэш-атрибуты: http://viralpatel.net/blogs/spring-mvc-flash-attribute-example/

+0

ошибки установлены в валидаторе. РедиректАтрибуты недоступны в этой точке. Ошибки устанавливаются в валидаторе, а затем контроллер просто возвращает экземпляр представления, а ошибки связаны с ним. Http://jeromejaglale.com/doc/java/spring/form_validation – devdar

0

Решение было добавить старый экземпляр объекта обратно к виду, по-видимому его в объект, который связывается с результатами проверки, и не мнение. Раствор должен был добавляться:

if(result.hasErrors()){ 
      model.addAttribute("monitoring", monitoring); 
      return new ModelAndView(new RedirectView("monitoringList.htm"),"page",0); 
      //return new ModelAndView("monitoringList"); 
     } 
Смежные вопросы