拦截器,这个以后肯定会用到。开始配了半天没有成功,记录一下备查:
第一种最简单的方式:拦截所有的
<mvc:interceptors> <bean class="mybatistest.controller.CommonInterceptor" /> </mvc:interceptors>
第二种应该是第一种的扩展,可以配置多个拦截器,配置拦截的规则
<mvc:interceptors>
<!-- 多个拦截器,顺序执行 -->
<mvc:interceptor>
<mvc:mapping path="/**" /><!-- 如果不配置或/**,将拦截所有的Controller -->
<bean class="mybatistest.controller.CommonInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
这种开始一直没有成功,后来才发现,我的测试用Controller是/user/login,开始mapping配置为/*,只会拦截第一层的,后面改为/**就对了。
网上另外看到有这种,没试:
<!--
如果不定义mappingURL,则默认拦截所有对Controller的请求 ;
可以使用正则表达式对url进行匹配,从而更细粒度的进行拦截(.*/entryOrJsonController\.do\?action=reg.*);
-->
<bean id="commonInterceptor" class="mybatistest.controller.CommonInterceptor">
<!-- <property name="mappingURL" value=".*/entryOrJsonController\.do\?action=reg.*"/> -->
</bean>
<!-- 处理在类级别上的@RequestMapping注解-->
<bean
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" >
<property name="interceptors">
<!-- 多个拦截器,顺序执行 -->
<list>
<ref bean="commonInterceptor"/>
</list>
</property>
</bean>
这篇文章有详细内容可参考:http://jinnianshilongnian.iteye.com/blog/1670856