0

我想用变量填充所有页面,但它不起作用:

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}一个页面上时,它只是空的。

4

1 回答 1

3

请注意,您的postHandle()方法具有不正确的签名,因此它不会覆盖HandlerInterceptorAdapter. 正确的是:

public void postHandle(
    HttpServletRequest request, HttpServletResponse response, 
    Object handler, ModelAndView modelAndView) { ... }

您可以通过注释旨在覆盖超类方法的方法来防止此类问题@Override

@Override
public void postHandle(ModelMap map) { ... }

在这种情况下,编译器会给你错误,因为这个方法不会覆盖任何东西。

于 2013-08-13T19:31:26.377 回答