2011-09-07 258 views
0

我想設置一個全球性的標題我SRING MVC攔截器的postHandle方法內部網頁,像這樣覆蓋攔截器的ModelAndView在Spring MVC

攔截器類

model.addObject("title", "global title"); //ModelAndView 

然後在我的控制器類我有

model.addAttribute("title", "Specific page title"); //Model - Overwrite global title 

我的jsp頭

<title>${titile}</title> 

問題是我總是將「全局標題」作爲標題變量的值。出於某種原因,控制器內部的模型ui從未覆蓋攔截器內部的模型。

回答

1

如果我理解正確,則實施HandlerInterceptor.postHandle()方法。 PostHandle的意思是,這是在單個控制器運行後運行的。由於您在之後設置標題屬性,因此單個處理程序具有「全局標題」,您將始終獲得「全局標題」。

嘗試HandlerInterceptor.preHandle() - 有一個機會,這將更好地工作,我想......

(編輯:鍵入廢話...嘗試preHandle(),不嘗試的postHandle() )

+0

你是對的!這樣一個明顯的錯誤-_-和感謝指出:) – Infinity

+1

@Infinity你如何能夠在preHandle中修改模型?我只是看着Interceptor接口文檔,注意到modelAndView只在postHandle方法中可用。 – sttaq