1. 程式人生 > 其它 >解決The content of element type "web-app" must match報錯

解決The content of element type "web-app" must match報錯

Spring MVC中配置多個Servlet時,IDEA報錯,如下:

The content of element type "web-app" must match "(icon ,display-
name ,description ,distributable ,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-
mapping*,session-config ,mime-mapping*,welcome-file-list ,error-page*,taglib*,resource-env-
ref*,resource-ref*,security-constraint*,login-config ,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)".
- No grammar constraints (DTD or XML schema) detected for the document.

意思很簡單,次序不對,很多博文建議刪除DOCTYPE中的校驗程式碼方法是不推薦的

正確做法是調整次序

如web.xml中存在如下多個servlet,此時編輯器將報錯,xml程式碼如下:

 1   <servlet>
 2     <servlet-name>UserServlet</servlet-name>
 3     <servlet-class>fun.liping.web.UserServlet</servlet-class>
 4   </servlet>
 5   <servlet-mapping>
6 <servlet-name>UserServlet</servlet-name> 7 <url-pattern>/userServlet</url-pattern> 8 </servlet-mapping> 9 <servlet> 10 <servlet-name>DispatcherServlet</servlet-name> 11 <servlet-class>org.springframework.web.servlet.DispatcherServlet</
servlet-class> 12 <load-on-startup>1</load-on-startup> 13 </servlet> 14 <servlet-mapping> 15 <servlet-name>DispatcherServlet</servlet-name> 16 <url-pattern>/</url-pattern> 17 </servlet-mapping>

 

此時要保證所有的servlet標籤在servlet-mapping標籤前面,調整次序如下:

 1   <servlet>
 2     <servlet-name>UserServlet</servlet-name>
 3     <servlet-class>fun.liping.web.UserServlet</servlet-class>
 4   </servlet>
 5   <servlet>
 6     <servlet-name>DispatcherServlet</servlet-name>
 7     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 8     <load-on-startup>1</load-on-startup>
 9   </servlet>
10   <servlet-mapping>
11     <servlet-name>UserServlet</servlet-name>
12     <url-pattern>/userServlet</url-pattern>
13   </servlet-mapping>
14   <servlet-mapping>
15     <servlet-name>DispatcherServlet</servlet-name>
16     <url-pattern>/</url-pattern>
17   </servlet-mapping>

以上,問題解決。

一起學習加微信交流: