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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM