jsp 标记 - JSP - 两个具有相同 URI 的 TLD 文件 - 容器如何解决冲突



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

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

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

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

它将加载在类路径中找到的第一个匹配项。顺序取决于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>

最新更新