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>

 


免責聲明!

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



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