2016-07-15 83 views
0

我使用flashAttribute將數據重定向到其他控制器操作。 但是模型是空的。代碼看起來是正確的。其他行爲中的相同代碼就像魅力一樣工作。唯一的區別是方法簽名上的@PathVariableRedirectAttribute不工作 - 模型在Spring mvc控制器中爲空

@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"; 
} 

回答

0

有必要返回ModelAndView對象。簡單的字符串不工作。