Spring MVC模型生命周期

时间:2012-07-03 10:52:44

标签: java spring spring-mvc

我对Spring MVC中的模型行为存有疑问。

我有一个带处理程序方法的控制器类,比如说:

@RequestMapping(value = "/result", method = RequestMethod.GET)
public String getExportResults(@RequestParam("token") String token,
        Model model) {

        // ...

        model.addAttribute("task", myObject);

        // ...
}

@RequestMapping(value = "/file", method = RequestMethod.GET)
public void getFile(Model model, HttpServletResponse response)

    // can't find "task" attribute...

}

当我将"task"属性放入model时,在我的getExportResults中,我希望找到getFile方法的模型参数,但是当我尝试获取它时,"task" null 。 我错了吗?也许我不清楚模特行为......

2 个答案:

答案 0 :(得分:6)

你的期望是错误的。将某些内容放入模型中使其仅适用于当前请求。在模型中添加内容的目的是使其可用于视图,以生成HTML页面。

答案 1 :(得分:1)

使用每个请求初始化Model,每个请求都会创建一个新的模型对象。添加任务对象的模型与getFile方法中的模型对象不同。

如果这些是2个不同的请求,您可能希望将任务对象放入会话并从那里检索它。