我想用变量填充所有页面,但它不起作用:
public class PagePopulationInterceptor extends HandlerInterceptorAdapter {
public void postHandle(ModelMap map) {
map.addAttribute("hello", "world");
}
}
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
public @Override void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new PagePopulationInterceptor());
}
}
将${hello}
放在页面上时,它只是空的。
答案 0 :(得分:3)
请注意,您的postHandle()
方法的签名不正确,因此它不会覆盖HandlerInterceptorAdapter
的实际方法。正确的是:
public void postHandle(
HttpServletRequest request, HttpServletResponse response,
Object handler, ModelAndView modelAndView) { ... }
您可以通过@Override
注释旨在覆盖超类方法的方法来防止此类问题:
@Override
public void postHandle(ModelMap map) { ... }
在这种情况下,编译器会给出错误,因为此方法不会覆盖任何内容。