【问题标题】:Multiple URL pattern elements in web.xmlweb.xml 中的多个 URL 模式元素
【发布时间】:2012-10-03 20:05:22
【问题描述】:

在符合 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>

URL 模式定义如下所示:

所以我认为,我们可以在元素中包含多个元素。 然而,我的 Eclipse IDE 似乎不同意我的观点,并且需要一个“调度程序”标签。

看图:

【问题讨论】:

  • 我认为 xsd:choice 元素只是意味着您必须选择其中的一个元素,即 url-pattern 或 servlet-name。
  • 从 J2EE 2.5 规范检查 xsd of >= 2.5 中允许使用多个 url 模式

标签: eclipse jakarta-ee web.xml


【解决方案1】:

显然没有,但你可以:

<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>

【讨论】:

【解决方案2】:

maxOccursminOccurssequence 元素中的默认值为 1
https://msdn.microsoft.com/en-us/library/ms256089(v=vs.110).aspx

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

【讨论】:

  • @Darshana 谢谢。已更新。
猜你喜欢
  • 1970-01-01
  • 2017-07-13
  • 2017-11-19
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
  • 2020-01-21
  • 2015-06-26
相关资源
最近更新 更多