SpringMVC自定义拦截器在 .xml文件中配置报错(标红)
一.错误现象
配置文件
<mvc:interceptors>
<mvc:interceptor>
<mvc:exclude-mapping path="/error/*"/>
<bean class="com.gree.interceptors.GetClientIpInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
报错图片
运行后异常信息(部分)
严重: Allocate exception for servlet springmvc
org.xml.sax.SAXParseException; lineNumber: 31; columnNumber: 42; cvc-complex-type.2.4.a: 发现了以元素 'mvc:exclude-mapping' 开头的无效内容。应以 '{"http://www.springframework.org/schema/mvc":mapping}' 之一开头。
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)
二.解决方法
<mvc:interceptors>
<mvc:interceptor>
<!-- 必须以 <mvc:mapping path=""/> 开始 -->
<mvc:mapping path="" />
<mvc:exclude-mapping path="/error/*" />
<bean class="com.gree.interceptors.GetClientIpInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
三.总结
不是.xsd文件发生错误,无需更替.xsd文件。而是语法错误,<mvc:interceptor>在配置的时候必须要以<mvc:mapping path="" />开头(也要必须存在),参数的存在,没有会报错。