2016-07-15 13 views
0

Ich benutze flashAttribute für Redirect Daten zu anderen Controller-Aktion. Aber Modell ist leer. Der Code scheint richtig zu sein. Derselbe Code in anderen Aktionen funktioniert wie ein Zauber. Der einzige Unterschied ist eine @PathVariable für MethodensignaturRedirectAttribute funktioniert nicht - Modell ist im Frühling leer mvc controller

@RequestMapping("/user/edit-execute") 
public String editExecute(@ModelAttribute @Valid UserEditForm userEditForm, BindingResult result, RedirectAttributes attr,HttpServletRequest httpServletRequest) { 
    basePath ="" 
    ModelAndView m = new ModelAndView("user.edit"); 
    ModelAndView redirect = new ModelAndView("redirect:/user/"); 

    HttpSession session = httpServletRequest.getSession(); 

    try{ 
     if(userEditForm.getStatus()==null){ 
      userEditForm.setStatus(0); 
     } 

     if(!result.hasFieldErrors()) { 
      userDaoCrud.update(userEditForm, userEditForm.getId_user()); 
      session.setAttribute("message", "Operazione completata con successo."); 
      session.setAttribute("css_class", "dashboard_ok"); 
      return "redirect: " + basePath + "/user"; 
     }else{ 
      attr.addFlashAttribute("org.springframework.validation.BindingResult.userEditForm", result); 
      attr.addFlashAttribute("userEditForm", userEditForm); 
      return "redirect: " + basePath + "/user/edit/"+userEditForm.getId_user(); 
     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
     return "redirect: " + basePath + "/user/edit/"+userEditForm.getId_user(); 
    } 
} 



@RequestMapping("/user/edit/{id}") 
public String edit(Model model, @PathVariable("id") int id, HttpServletRequest httpServletRequest) { 


    logger.warn(model); 
    .... 
    return "user.edit"; 
} 

Antwort

0

Es ist erforderlich, ein ModelAndView-Objekt zurückzugeben. Einfache Zeichenfolge funktioniert nicht.

Verwandte Themen