Spring Mvc拦截器不起作用

匿名 (未验证) 提交于 2019-12-03 00:11:01

在Spring MVC 中配置了拦截器不起作用

  spring mvc一部分配置文件

 1     <!-- 启动 mvc 注解驱动 -->  2     <mvc:annotation-driven/>  3     <!-- 静态资源处理 -->  4     <mvc:default-servlet-handler/>  5   6     <!-- 后台访问拦截器 -->  7      <mvc:interceptors>  8         <mvc:interceptor>  9             <mvc:mapping path="/**"/> 10             <mvc:exclude-mapping path="/system/login"/> 11             <mvc:exclude-mapping path="/system/get_cpacha"/> 12             <mvc:exclude-mapping path="/h-ui/**"/> 13             <mvc:exclude-mapping path="/easyui/**"/> 14             <bean class="cn.fereli.interceptor.LoginInterceptor"></bean> 15         </mvc:interceptor> 16      </mvc:interceptors> 17  18       <!-- 3.视图的解析器--> 19       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 20             <property name="prefix" value="/WEB-INF/views/"></property> 21             <property name="suffix" value=".jsp"></property> 22       </bean>

 

网上有的说是因为在spring-mvc.xml文件中配置了  

<mvc:annotation-driven/>导致拦截器不起作用,因为在这个标签中默认有一个拦截器《这句会其实它已经注册了一个DefaultAnnotationHandlerMapping ,而在后面你自己注册的优先级没它内部的高,所以一直都不会调用你注册的拦截器。
既然 <mvc:annotation-driven/>的拦截器优先级高,所以你在配置你的视图解析器的时候就将将他优先级提高
 1 <!-- 后台访问拦截器 -->  2      <mvc:interceptors>  3         <!--在这里把拦截器的全类名声明好,结果问题解决了-->  4         <bean class="cn.fereli.interceptor.LoginInterceptor"/>  5         <mvc:interceptor>  6             <mvc:mapping path="/**"/>  7             <mvc:exclude-mapping path="/system/login"/>  8             <mvc:exclude-mapping path="/system/get_cpacha"/>  9             <mvc:exclude-mapping path="/h-ui/**"/> 10             <mvc:exclude-mapping path="/easyui/**"/> 11             <bean class="cn.fereli.interceptor.LoginInterceptor"></bean> 12         </mvc:interceptor> 13      </mvc:interceptors>

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!