Spring 为什么我不能从被调用的方法添加到模型中?

Spring 为什么我不能从被调用的方法添加到模型中?,spring,jsp,spring-mvc,Spring,Jsp,Spring Mvc,当我这样做时: @RequestMapping(value = "/something", method = RequestMethod.POST) public String stuff( @ModelAttribute("xxx") ReviewAB7500Data xxx, HttpServletRequest request, Model model) throws GeneralDAOException { model.addAttribute("somekey

当我这样做时:

@RequestMapping(value = "/something", method = RequestMethod.POST)
public String stuff(
    @ModelAttribute("xxx") ReviewAB7500Data xxx,
    HttpServletRequest request, Model model) throws GeneralDAOException {
    model.addAttribute("somekey",someValue);
 }
一切正常,我可以在JSP中看到我的对象。但当我这样改变它时:

private void someOtherMethod(Model model) {
    model.addAttribute("somekey",someValue);
    return;
}

@RequestMapping(value = "/something", method = RequestMethod.POST)
public String stuff(
    @ModelAttribute("xxx") ReviewAB7500Data xxx,
    HttpServletRequest request, Model model) throws GeneralDAOException {
    someOtherMethod(model);
    return viewName;
 }

…名为somekey的addAttribute从未放在模型上,或者至少在我的JSP中不可见。这里有什么提示吗?

我认为您需要为该方法添加一个额外的参数:

@RequestMapping(value = "/something", method = RequestMethod.POST)
public String stuff(@ModelAttribute("xxx") ReviewAB7500Data xxx,
                    BindingResult result,
                    HttpServletRequest request, 
                    Model model) throws GeneralDAOException

我相信这应该很好。这听起来可能是一个愚蠢的问题,但其他方法到底是什么样的呢;一定是有别的东西改变了,或者你在向我们展示之前过度简化了这个例子。我必须同意上面的评论。简化逻辑时是否遗漏了一些内容?BindingResult仍然存在,仍然是相同的问题。