2013-11-12 1 views
1

Мой файл web.xml являетсяСодержание типа элемента "сервлет-отображение" должно соответствовать "(имя сервлета, URL-шаблон)"

<!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 id="WebApp_1383925467813"> 
    <display-name>Archetype Created Web Application</display-name> 
    <context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:applicationContext.xml</param-value> 
    </context-param> 
    <listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
     <url-pattern>/m/*</url-pattern> 
     <url-pattern>/t/*</url-pattern> 
    </servlet-mapping> 


    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
</web-app> 

MyEclipse сообщает об ошибке:

The content of element type "servlet-mapping" must match "(servlet-name,url-pattern)"

В чем проблема? Thank's

ответ

1

В соответствии с DTD мы можем иметь только один <url-pattern> внутри тега <servlet-mapping>.

<!ELEMENT servlet-mapping (servlet-name, url-pattern)>

Перепишите ваш XML как:

<servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/m/*</url-pattern> 
</servlet-mapping> 
<servlet-mapping> 
     <servlet-name>dispatcher</servlet-name> 
     <url-pattern>/t/*</url-pattern> 
</servlet-mapping> 
3

Пожалуйста, измените DTD в версию 3.0, которая позволяет несколько <url-pattern> тегов внутри <servlet-mapping>.

Я только что сделал изменение версии в вашем web.xml поместил ниже

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 
      <display-name>Archetype Created Web Application</display-name> 
      <context-param> 
      <param-name>contextConfigLocation</param-name> 
      <param-value>classpath:applicationContext.xml</param-value> 
      </context-param> 
      <listener> 
      <listener-class> 
       org.springframework.web.context.ContextLoaderListener 
      </listener-class> 
      </listener> 
     <servlet> 
      <servlet-name>dispatcher</servlet-name> 
      <servlet-class> 
       org.springframework.web.servlet.DispatcherServlet 
      </servlet-class> 
      <load-on-startup>1</load-on-startup> 
      </servlet> 

      <servlet-mapping> 
       <servlet-name>dispatcher</servlet-name> 
       <url-pattern>/</url-pattern> 
       <url-pattern>/m/*</url-pattern> 
       <url-pattern>/t/*</url-pattern> 
      </servlet-mapping> 


      <welcome-file-list> 
      <welcome-file>index.jsp</welcome-file> 
      </welcome-file-list> 
     </web-app>