2011-09-07 257 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