如何在Spring中的所有页面requestScopes中存储变量

时间:2013-08-07 16:46:48

标签: spring model controller

我通常使用控制器在我的jsp requestScopes中添加对象。

例如,如果我需要在“localhost / products / viewall”中列出类别,我只需更改我的ProductsController,添加类似

的内容
@RequestMapping("/products/viewall")
public void viewCategories(Model model) {
    List<Category> categories = service.findAllCategories();
    model.addAttribute("categories", categories);
}

所以,这个方法在requestScope中添加了一个类别列表。

我需要做同样的事情,但是对于网站的所有页面(因为我需要的变量将用于网站的布局)。

如何使用Spring向requestScopes的所有页面添加内容?

1 个答案:

答案 0 :(得分:2)

我认为你至少有两种可能的选择:

  • 使用MVC Interceptor。使用拦截器,您可以对所有请求执行常见操作。您可以在postHandle

  • 中扩展HandlerInterceptorAdapter并添加常见的模型数据
  • 在Controller中使用@ModelAttribute注释。您可以使用它为控制器中的所有请求映射添加公共数据。如果要向所有控制器提供模型数据,也可以使用@ControllerAdvice(内置@ModelAttribute注释方法)。 Using @ModelAttribute on a method部分应为此提供一些其他信息。