码迷,mamicode.com
首页 > 编程语言 > 详细

创建Springmvc项目时,特殊拦截器失效情况的原因及解决办法

时间:2017-10-12 12:15:10      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:技术分享   src   运行时   mvc框架   不用   schema   分享   jar   jar包版本   

最近开发一个新项目时,搭建springmvc框架时,遇到一个拦截器失效的情况困扰了两天。现在解决,特此记录一下。

拦截器不生效的情况描述:

  技术分享

设置登录拦截的时候,首先登录接口肯定是不用拦截的。所以需要在<mvc:interceptors>的标签中,添加<mvc:exclude-mapping>,作用是排除不需要拦截的请求。

但是,实际运行中,登录接口被拦截到了,也就是说<mvc:exclude-mapping>标签没起作用。

当时检查了所有可能的配置,包括头信息schema的版本引入,4.1算是比较新的,感觉应该都没问题的,可是始终无法解决。

 

后来找到了出现这个问题的原因:

问题还是出现在schema的引用。

从截图来看,schema引入的是4.1版本,算是比较新的,应该没问题。但是关键是,运行过程中,并没有使用4.1版本。

代码正常运行时,使用的版本实际上是pom文件中spring jar包的版本。

技术分享

然后打开项目中的Maven Dependencies,

技术分享技术分享技术分享

可以看到,实际jar包中的schemas版本只有3.1和3.0,而3.1版本的xsd是不支持<mvc:exclude-mapping>标签的。

所以,尽管我在spring-interceptor.xml的头位置配置了4.1的xsd,但是实际并不起作用,没有在实际的jar包中找到4.1版本的xsd文件。

解决办法:

技术分享

 

就是讲spring系列的jar包版本改为比较新的版本,改为支持<mvc:exclude-mapping>标签的版本。

这时候,就会在Maven Dependencies中看到新的xsd。

技术分享技术分享技术分享

可以看到,因为pom文件中配置的版本是4.2.2的,它会兼容之前的版本,生成的xsd文件中,已经包含之前版本的xsd。所以此时,在spring-interceptor.xml的头位置配置4.1的xsd,<mvc:exclude-mapping>标签就生效了,

就不会拦截登录接口或不需要拦截的请求了。

 

创建Springmvc项目时,特殊拦截器失效情况的原因及解决办法

标签:技术分享   src   运行时   mvc框架   不用   schema   分享   jar   jar包版本   

原文地址:http://www.cnblogs.com/ningJJ/p/7655302.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!