【发布时间】:2012-02-20 18:52:36
【问题描述】:
Tomcat在哪些地方以什么顺序搜索taglib标签uri对应关系?
何时需要 tld 文件及其在 web.xml 中的描述,何时不需要?
【问题讨论】:
标签: java jsp tomcat uri taglib
Tomcat在哪些地方以什么顺序搜索taglib标签uri对应关系?
何时需要 tld 文件及其在 web.xml 中的描述,何时不需要?
【问题讨论】:
标签: java jsp tomcat uri taglib
来自JSP 2.1 specification 的第 7.3.6.2 和 7.3.6.3 章:
JSP.7.3.6.2 计算 TLD 资源路径
以下描述如何解析 taglib 指令以计算 TLD 资源路径。它基于 taglib 指令的 uri 属性的值。
如果 uri 是 abs_uri,则为绝对 URI
在 taglib 映射中查找 taglib_uri 为 abs_uri 的条目。如果找到,则 对应的 taglib_location 是 TLD 资源路径。如果没有找到,翻译 引发错误。
如果uri是root_rel_uri,则以/开头的相对URI
在 taglib 映射中查找 taglib_uri 为 root_rel_uri 的条目。如果找到, 对应的 taglib_location 是 TLD 资源路径。如果没有这样的条目 发现,root_rel_uri是TLD资源路径。
...
JSP.7.3.6.3 使用注意事项
...
在 taglib 映射中使用相对 URI 规范可以实现非常短的 taglib 指令中的名称。例如,如果地图是:
<taglib> <taglib-uri>/myPRlibrary</taglib-uri> <taglib-location>/WEB-INF/tlds/PRlibrary_1_4.tld</taglib-location> </taglib>那么它可以用作:
<%@ taglib uri=”/myPRlibrary” prefix=”x” %>最后,回退规则允许 taglib 指令直接引用 TLD。 这种安排非常方便快速开发,代价是更少 灵活性和问责制。例如,在上述情况下,它启用:
<%@ taglib uri=”/WEB-INF/tlds/PRlibrary_1_4.tld” prefix=”x” %>
【讨论】: