2016-05-28 3 views
0

У меня проблема с RedirectAttributes, не сохраняющая (я думаю). Это мой код:Проблема с RedirectAttributes в SpringMVC

@RequestMapping(path = "/job_offers", method = RequestMethod.POST) 
    public String createJobOffer(@Valid @ModelAttribute("jobOfferForm") JobOfferForm jobOfferForm, 
      final BindingResult binding, RedirectAttributes attr) { 
     attr.addFlashAttribute("org.springframework.validation.BindingResult.jobOfferForm", binding); 
     attr.addFlashAttribute("jobOfferForm", jobOfferForm); 

     return "redirect:/job_offers"; 
    } 

@RequestMapping(path = "/job_offers", method = RequestMethod.GET) 
    public ModelAndView jobOffers(@RequestParam(required = false, value = "skill_id") final Long skillId, 
      @ModelAttribute("jobOfferForm") JobOfferForm jobOfferForm, final BindingResult binding) { 

     ModelAndView mav = new ModelAndView("job_offers/index"); 

     mav.addAllObjects(getJobOffersMap(skillId)); 
     mav.addObject("jobOfferForm", jobOfferForm); 

     return mav; 
    } 

Если я печатаю мои привязки в методе POST он имеет в ней ошибку, но когда я вызываю метод GET через редирект связывание приходит пустым! и весна не показывает ошибку обратной связи по формам из-за этого

Любые идеи? Спасибо!

ответ

0

Попробуйте это: В вашем POST

attr.addFlashAttribute("bindignResultForJobOfferForm", binding); 

И в ГЭТ

if (model.asMap().containsKey("bindignResultForJobOfferForm")) 
    { 
     model.addAttribute("errors", 
       model.asMap().get("bindignResultForJobOfferForm")); 
    } 
+0

Я пробовал подход несколько, как это и это сработало. Но проблема в том, что привязка используется Spring для отображения ошибок в формах (например, «слишком короткий пароль» и т. Д.). Это не просто случайная величина. Редактировать: Я понял, что вы, возможно, видели это так из-за комментария, это была испытательная вещь, моя плохо! Я удалил его –

+0

ok. один вопрос. В сигнатуре метода get зачем нужна форма как атрибут модели ?! ... Я думаю, что это то, что делает сообщения dissapear – KLajdPaja

+0

@ModelAttribute может использоваться как аргумент/параметр метода или перед объявлением метода. Основной целью этой аннотации является привязка параметров запроса или полей формы к объекту модели. Ссылка: http://www.javabeat.net/modelattribute-spring-mvc/ . Передавая это поле, форма не очищается, когда у вас есть некоторая ошибка (сообщение получает экземпляр формы, а получатель заполняет его снова предыдущими данными) –

Смежные вопросы