使用自定义标记库时,我看到了一个奇怪的问题。
在我的jsp页面之一中,自定义tld文件的相对uri路径错误。

Taglib包含在jsp页面中,如下所示

bbb.tld的位置是:Stores \ WebContent \ WEB-INF \ bbb.tld

此taglib包含在父jsp文件中,而不是从父目录导入/包含的jsp文件。

我的应用程序还有其他几个jsp文件,其中相同的taglib与正确的路径一起使用。

相同的代码部署在多个测试环境中。在某些环境中,代码会引发错误“无法找到资源”,这是预期的。但是taglib在大多数环境中都能正常工作,而不是错误的路径。

为什么不同服务器环境之间的行为存在差异?如果uri无法解析,服务器会自动查找所有tld文件吗?

最佳答案

我建议在WEB-INF之前添加一个斜杠('/')。您可以尝试以下吗?

<%@ taglib prefix="aaa" uri="/WEB-INF/bbb.tld" %>


希望这将为您在所有服务器实例上提供一致的结果。另外,将TLD存放在Stores \ WebContent \ WEB-INF \ bbb.tld中似乎与使用IDE(例如Eclipse)开发应用程序有关。将应用程序导出为EAR或WAR后,路径将更像Stores.war / WEB-INF / bbb.tld

关于java - 自定义标签库的uri问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35511715/

10-11 03:48