用于Web应用程序根的Spring MVC拦截器映射

时间:2012-07-24 07:06:05

标签: spring java-ee spring-mvc

我在我的应用程序上下文中配置了一个Interceptor,我希望将其映射到Web应用程序的根目录(“/”)。

<mvc:interceptors>
    <bean class="com.example.SslInterceptor" />
    <mvc:interceptor>
        <mvc:mapping path="/" />
        <mvc:mapping path="/login" />
        <bean class="com.example.SslInterceptor" />
    </mvc:interceptor>
</mvc:interceptors>

但是当拦截器被称为“/ login”时,它不是“/”。请帮忙

2 个答案:

答案 0 :(得分:3)

请更改servlet config xml文件中的拦截器配置,如下所示:

<mvc:annotation-driven/>
<mvc:default-servlet-handler/>

<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/**"/>
    <bean class="de.scrappy.web.TestInterceptor"/>
  </mvc:interceptor>
</mvc:interceptors>

答案 1 :(得分:0)

您真的只想映射根路径,还是指'/ *'? 无论如何,以下配置适用于我使用Spring 3.1.1,DispatcherServlet映射到web.xml中的root('/'):

<mvc:annotation-driven/>
<mvc:default-servlet-handler/>

<mvc:interceptors>
  <mvc:interceptor>
    <mvc:mapping path="/"/>
    <bean class="de.scrappy.web.TestInterceptor"/>
  </mvc:interceptor>
</mvc:interceptors>

您使用的是哪个版本的Spring以及Spring的DispatcherServlet是如何映射的? 请注意TestInterceptor实施HandlerInterceptor,我不知道WebRequestInterceptors处理方式是否不同。