Spring - 如何制作全局URL控制器?

时间:2015-02-04 10:59:36

标签: java spring spring-mvc

我的Spring网络应用程序中有很多控制器,我想知道,如何构建类似控制器或过滤器的东西,以便执行他的代码,当在URL中出现时.....?clearCache = Y?< / p>

3 个答案:

答案 0 :(得分:2)

扩展HandlerInterceptorAdapter并对其进行配置:

public class CacheClearingHandlerInterceptor extends HandlerInterceptorAdapter {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

    if("Y".equals(request.getParameter("clearCache"))) {
      doCoolStuff();
    }

    return super.preHandle(request, response, handler);
  }

}

在Web应用程序上下文配置(mvc-dispatcher-servlet.xml)中:

<mvc:interceptors>
    <mvc:interceptor>
        <mvc:mapping path="/**"/>
        <bean class="com.example.project.CacheClearingHandlerInterceptor"/>
    </mvc:interceptor>
</mvc:interceptors>

答案 1 :(得分:0)

在Controller方法上使用它:

@RequestMapping(value = "/urlpPath", params="clearCache=Y", method = RequestMethod.GET)

Params是用于使用参数值限制url的内容。

答案 2 :(得分:0)

如果您希望此功能适用于任何请求,您可以通过实现请求过滤器或拦截器来实现此功能。

您可以在Spring中找到此类行为的一个示例。 LocaleChangeInterceptor检查参数lang并修改当前请求区域设置。