web.xml中的多个URL模式元素

时间:2012-10-13 00:05:30

标签: eclipse java-ee web.xml

在符合J2EE Web应用程序版本2.4的web.xml中的元素中有多个元素可以这样:

<filter-mapping>
    <filter-name>SomeFilter</filter-name>
    <url-pattern>*.htm</url-pattern>
    <url-pattern>*.do</url-pattern>
</filter-mapping>

我从这里查找了XSD“web-app_2_4.xsd”文件:http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd 而定义如下:

  <xsd:complexType name="filter-mappingType">
    <xsd:annotation>
      <xsd:documentation>
            some documentation here
      </xsd:documentation>
    </xsd:annotation>

    <xsd:sequence>
      <xsd:element name="filter-name"
           type="j2ee:filter-nameType"/>
      <xsd:choice>
    <xsd:element name="url-pattern"
             type="j2ee:url-patternType"/>
    <xsd:element name="servlet-name"
             type="j2ee:servlet-nameType"/>
      </xsd:choice>
      <xsd:element name="dispatcher"
           type="j2ee:dispatcherType"
           minOccurs="0" maxOccurs="4"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:ID"/>
  </xsd:complexType>

网址格式定义如下所示:       

所以我认为,我们可以在元素中包含多个元素。 然而,我的Eclipse IDE似乎并不同意我的意见,并期望有一个“调度程序”标记。

见图片: Eclipse error

2 个答案:

答案 0 :(得分:14)

显然不是,但你可以:

<filter-mapping>
 <filter-name>SomeFilter</filter-name>
 <url-pattern>*.htm</url-pattern>
</filter-mapping>    

<filter-mapping>
 <filter-name>SomeFilter</filter-name>
 <url-pattern>*.do</url-pattern>
</filter-mapping>

答案 1 :(得分:4)

1的默认值为maxOccursminOccurs元素的默认值为sequence:<{3}}。

choice只允许其中一个元素:
https://msdn.microsoft.com/en-us/library/ms256089(v=vs.110).aspx