使用JSP,taglib URI是否意味着我的网站依赖于URI解析?
我正在尝试在我的网站中实现sitemesh装饰器。 他们网站上的示例有一个完整的URI链接到他们的站点,用于装饰器文件的taglib部分:
这是否意味着我的网站依赖于能够访问该网站? 因为我想在无法访问外部世界的Intranet内部署。
谢谢
不,不是的。 在taglib
声明的URI将在本地解析,只要它与标记库描述符中声明的URI匹配(或者在web.xml
,具体取决于容器实现的JSP版本)。
有关详细信息,请参阅Java EE教程 。
不可以.URI是统一资源标识符,它不是定位符(URL)。 这意味着URI用于唯一标识taglib的内部注册表中的每个taglib,就像一个键用于在Java中设置/获取HashMap
或Hashtable
中的值。
根据Sun的Web应用程序规范,将URI解析为可由应用程序加载/调用的实际标记库按以下顺序进行:
- 检查
web.xml
文件以查找具有给定URI的taglib
标记,然后按照taglib-location
标记实际加载TLD。 - 如果未找到与#1匹配的情况,则递归检查应用程序中包含指定URI的TLD的所有JAR的
META-INF
目录。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" >
其中uri
属性值解析为容器理解的位置,并且prefix
属性通知容器标记的哪些位是自定义操作。