3

我对 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。我错了吗?也许模型行为对我来说不是很清楚......

4

2 回答 2

5

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

于 2012-07-03T11:02:01.287 回答
1

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

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

于 2012-07-03T11:00:25.647 回答