zoukankan      html  css  js  c++  java
  • spring mvc:exclude-mapping错误提示

    今天搭建一个java web项目时,增加了一个登录的拦截器,主要功能就是未登录的用户无法访问系统的任何页面。

    先说明下我的web项目springmvc的版本以及刚开始配置的拦截器:

    springmvc 4.3.7

     1 <!-- 拦截器 -->
     2     <mvc:interceptors>
     3         <!-- 登录拦截 -->
     4         <mvc:interceptor>
     5             <mvc:exclude-mapping path="/login"/>
     6             <mvc:exclude-mapping path="/"/>
     7             <mvc:exclude-mapping path="/dologin"/>
     8             <mvc:exclude-mapping path="/loginout"/>
     9             <mvc:mapping path="/**"/>
    10             <bean class="org.yi.lc.web.common.interceptor.LoginInterceptor"/>
    11         </mvc:interceptor>
    12     </mvc:interceptors>

    但是在spring-servlet.xml配置这个拦截器的时候,工具一直报错,运行的时候出现如下错误:

     1 org.xml.sax.SAXParseException; lineNumber: 27; columnNumber: 49; cvc-complex-type.2.4.a: 发现了以元素 'mvc:exclude-mapping' 开头的无效内容。应以 '{"http://www.springframework.org/schema/mvc":mapping}' 之一开头。
     2     at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
     3     at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
     4     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
     5     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
     6     at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
     7     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:452)
     8     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3230)
     9     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1790)
    10     at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.emptyElement(XMLSchemaValidator.java:760)
    11     at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)

    这个错误提示刚开始没看懂,以为是不支持mvc:exclude-mapping,然后百度原因,各种解法,比如替换jar包之类的。

    从对应的schema中http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd查看,发现是有这个标签的,这就说明我这个版本显然是支持的,那么这个报错事什么意思呢?

    后面注意到错误提示中“开头”两个字,如果不以mvc:exclude-mapping开头是不是就可以了,尝试了一下,果然可以!

    附上正确顺序的配置:

    <!-- 拦截器 -->
        <mvc:interceptors>
            <!-- 登录拦截 -->
            <mvc:interceptor>
                <mvc:mapping path="/**"/>
                <mvc:exclude-mapping path="/login"/>
                <mvc:exclude-mapping path="/"/>
                <mvc:exclude-mapping path="/dologin"/>
                <mvc:exclude-mapping path="/loginout"/>
                <bean class="org.yi.lc.web.common.interceptor.LoginInterceptor"/>
            </mvc:interceptor>
        </mvc:interceptors>
  • 相关阅读:
    比特币学习笔记(五)---继续解读入口部分源码
    比特币学习笔记(四)---解读入口部分源码
    比特币学习笔记(三)---配置文件和启动
    比特币学习笔记(二)---在windows下调试比特币源码
    比特币学习笔记(一)---在windows下编译搭建比特币环境
    让我们把KBEngine玩坏吧!如何定制我们自己的C++函数(一)
    KBEngine warring项目源码阅读(三) 实体文件与Account处理
    KBEngine warring项目源码阅读(二) 登录和baseapp的负载均衡
    KBEngine warring项目源码阅读(一) 项目简介和注册
    JMeter测试TCP服务器遇到的一个奇怪问题
  • 原文地址:https://www.cnblogs.com/liaochong/p/springmvc-exclude-mapping.html
Copyright © 2011-2022 走看看