【问题标题】:JSP - Two tld files with same URI - how does Container resolve conflict?JSP - 具有相同 URI 的两个 tld 文件 - 容器如何解决冲突?
【发布时间】:2013-01-13 07:23:36
【问题描述】:

我在WEB-INF 下定义了两个.tld 文件,但它们都有相同的<URI>“XYZ”

我在 JSP 中声明了 <%@ taglib prefix="mine" uri="XYZ" %>"

容器如何解决读取哪个tld文件以获得函数类和函数定义的歧义?

编辑:我在 Tomcat 7 中运行它并没有抛出异常。

【问题讨论】:

  • 谁能告诉我为什么反对票,如果你认为这是一个小问题而不是反对票,为什么不回答这个问题!!!!

标签: jsp jsp-tags taglib tld


【解决方案1】:

它将加载在类路径中找到的第一个匹配项。顺序取决于 JVM 和操作系统(本质上是任意的)。你不想依赖它,你应该修复.tld URI。

如果这代表一个现实世界的问题并且 taglib 代码超出了您的控制范围(但这很奇怪,谁会复制现有 taglib 的 URI?您真的拥有另一个 taglib 的域吗?),那么您可以始终在 webapp 的 web.xml 中重新定义 taglib URI,如下所示:

<taglib>
    <taglib-uri>http://www.example.com/foo</taglib-uri>
    <taglib-location>/WEB-INF/foo.tld</taglib-location>
</taglib>
<taglib>
    <taglib-uri>http://www.example.com/bar</taglib-uri>
    <taglib-location>/WEB-INF/bar.tld</taglib-location>
</taglib>

【讨论】:

  • 对不起,我只是想了解 taglibs 的工作原理,与现实世界的问题无关,只是出于好奇。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-25
  • 2015-09-23
  • 2020-02-04
  • 2015-11-26
  • 1970-01-01
相关资源
最近更新 更多