关于mvc:intercepter,如何设置排除路径

时间:2011-04-22 06:38:40

标签: spring spring-mvc

我们知道,我们可以像这样配置一个拦截器:

 <mvc:interceptor>
        <mvc:mapping path="/outfit/**" />
        <bean class="OpenSessionInViewInterceptor">
            <property name="sessionFactory">
                <ref bean="sessionFactory" />
            </property>
        </bean>

我的问题,如何配置排除路径?

2 个答案:

答案 0 :(得分:10)

从Spring 3.2开始,他们就添加了这个功能。

请参阅Spring文档中的此示例:

<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
<mvc:interceptor>
    <mapping path="/**"/>
    <exclude-mapping path="/admin/**"/>
    <bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" />
</mvc:interceptor>
<mvc:interceptor>
    <mapping path="/secure/*"/>
    <bean class="org.example.SecurityInterceptor" />
</mvc:interceptor>

以下是文档的link

答案 1 :(得分:0)

我认为你不能以声明的方式。但是在拦截器中,您可以添加if(..)并验证是否应排除请求uri。您可以在拦截器xml定义中将排除路径设置为列表属性。

为此你必须扩展OSIV拦截器并添加自定义逻辑和放大器。排除清单属性。