在Spring MVC中覆盖Interceptor ModelAndView

时间:2011-09-07 15:52:04

标签: java-ee spring-mvc

我正试图在Sring MVC Interceptor posthandle方法中设置我的网页的全局标题,如此

拦截器类

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

然后在我的控制器课程中我有

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

我的jsp标题

<title>${titile}</title>

问题在于我总是将“全局标题”作为标题变量的值。出于某种原因,控制器内部的模型ui永远不会覆盖在拦截器内设置的模型。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您实施HandlerInterceptor.postHandle()方法。 PostHandle意味着,这是在单个控制器运行后运行的。由于您在之后设置了标题属性,因此个别处理程序已经调到“全局标题”,您将始终获得“全局标题”。

尝试使用HandlerInterceptor.preHandle() - 有机会我认为这会更好......

(编辑:输入废话......试试 preHandle(),不要尝试postHandle())