Spring Mvc拦截器不起作用

在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>

猜你喜欢

转载自www.cnblogs.com/Fereli/p/11588741.html
今日推荐