为什么'update()'在Spring MVC 3.0中没有使用@ModelAttribute重定向到'sox'?

时间:2011-05-02 17:41:43

标签: java spring jsp spring-mvc

目前我只想测试从update方法重定向到sox方法。但相反,我收到错误抱怨缺少"update.jsp"

@RequestMapping(value = "/sox/update", method = RequestMethod.POST)
@ModelAttribute("formWrapper")
public final String update(HttpServletRequest request, 
 @ModelAttribute("formWrapper") FormWrapper formWrapper,
    BindingResult bindResult,
    ModelMap model)
{
    return "redirect:/sox";
}

@ModelAttribute("formWrapper")
FormWrapper setupForm()
{
    FormWrapper formWrapper = new FormWrapper();
    return formWrapper;
}

@RequestMapping(value = "/sox", method = RequestMethod.GET)
public final String sox(HttpServletRequest request, ModelMap model)
{
    return "sox";
}

1 个答案:

答案 0 :(得分:0)

我认为您的问题是更新方法上的@ModelAttribute。试试这种方式:

@RequestMapping(value = "/sox/update", method = RequestMethod.POST)
    public final String update(HttpServletRequest request, 
     @ModelAttribute("formWrapper") FormWrapper formWrapper,
        BindingResult bindResult,
        ModelMap model)
    {
        return "redirect:/sox";
    }

将@ModelAttribute添加到方法spring时,将return视为模型属性:

  

考虑任何其他返回类型   是一个单一的模型属性   暴露在视野中,使用   通过指定的属性名称   方法级别的@ModelAttribute   (或基于默认属性名称   在返回类型类名称上)。该   模型被隐含地丰富了   命令对象和结果   @ModelAttribute带注释的引用   数据访问方法。

查看Spring Docs的15.3.2.8以获取更多信息:(http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann -modelattrib)