2013-08-07 55 views
0

我通常使用控制器在我的jsp requestScopes中添加對象。如何在Spring的所有頁面中存儲變量requestScopes

例如,如果我需要列出類別在「本地主機/產品/ viewall」,我只是改變我的ProductsController添加類似

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

所以,這種方法增加了分類列表我requestScope。

我需要做同樣的事情,但對於網站的所有頁面(因爲我需要的變量將用於網站的佈局)。

如何在Spring的所有頁面中添加requestScopes?

回答

2

我認爲你有這至少有兩個可能的選擇:

  • 使用的MVC Interceptor。使用攔截器,您可以對所有請求執行常見操作。您可以擴展HandlerInterceptorAdapter並在postHandle中添加常用模型數據

  • 在Controller中使用@ModelAttribute註釋。您可以使用它爲控制器內的所有請求映射添加公共數據。如果您希望向所有控制器提供模型數據,則還可以使用@ControllerAdvice(其中帶有@ModelAttribute註釋的方法)。部分Using @ModelAttribute on a method應該爲此提供一些附加信息。