我在使用自定义标记库时遇到了一个奇怪的问题。 在我的一个jsp页面中,自定义tld文件的相对uri路径是错误的。
Taglib包含在jsp页面中,如下所示 <%@ taglib prefix =“aaa”uri =“WEB-INF / bbb.tld”%> bbb.tld的位置是:Stores \ WebContent \ WEB-INF \ bbb.tld
此taglib包含在父jsp文件中,而不是从父级导入/包含jsp文件。
我的应用程序有几个其他jsp文件,其中相同的taglib与正确的路径一起使用。
在多个测试环境中部署相同的代码。在一些环境中,代码抛出了“无法找到资源”的错误,这是预期的。但是taglib在大多数环境中运行良好,而不是错误的路径。
为什么不同服务器环境之间的行为存在差异?如果无法解析uri,服务器是否会自动查找所有tld文件?
答案 0 :(得分:0)
我建议在WEB-INF之前添加一个尾部斜杠('/')。你可以试试以下吗?
<%@ taglib prefix="aaa" uri="/WEB-INF/bbb.tld" %>
希望这会在所有服务器实例中为您提供一致的结果。此外,在Stores \ WebContent \ WEB-INF \ bbb.tld中使用TLD似乎与使用IDE(例如Eclipse)开发应用程序有关。将应用程序导出为EAR或WAR后,路径看起来更像Stores.war / WEB-INF / bbb.tld