RedirectAttribute无效 - Spring mvc控制器中的模型为空

时间:2016-07-15 14:47:22

标签: spring-mvc

我使用flashAttribute将数据重定向到其他控制器操作。  但模型是空的。代码似乎是正确的。其他动作中的相同代码就像魅力一样。唯一的区别是方法签名上的@PathVariable

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

1 个答案:

答案 0 :(得分:0)

必须返回一个ModelAndView对象。简单的字符串不起作用。