2

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

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

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

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

4

1 回答 1

2

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

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

<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>
于 2013-01-29T16:43:08.513 回答