转载请说明出处
直接说我遇到问题的解决方法:把过滤器换到servlet标签的前面或者删除版本信息
下面是问题的描述
最近在学习springMVC,在web.xml中写了一段过滤器。但是web-app标签一直是红色的,说我不符合啥啥规范
这个提示一定要读,我把它复制下来,通俗的翻译一下就是web-app中的标签顺序要符合括号中标签名字的排列顺序
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*)".
所以解决方法有两个
第一个:将下面的版本信息注释掉或者直接删掉
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
第二个方法:将web-app中的标签按照规定的顺序,我的代码放置如下。
至于大家的顺序是如何,参考一下上面的提示信息
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:SpringMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>