使用JSP,taglib URI是否意味着我的网站依赖于URI解析?

我正在尝试在我的网站中实现sitemesh装饰器。 他们网站上的示例有一个完整的URI链接到他们的站点,用于装饰器文件的taglib部分:

 

这是否意味着我的网站依赖于能够访问该网站? 因为我想在无法访问外部世界的Intranet内部署。

谢谢

不,不是的。 在taglib声明的URI将在本地解析,只要它与标记库描述符中声明的URI匹配(或者在web.xml ,具体取决于容器实现的JSP版本)。

有关详细信息,请参阅Java EE教程 。

不可以.URI是统一资源标识符,它不是定位符(URL)。 这意味着URI用于唯一标识taglib的内部注册表中的每个taglib,就像一个键用于在Java中设置/获取HashMapHashtable中的值。

根据Sun的Web应用程序规范,将URI解析为可由应用程序加载/调用的实际标记库按以下顺序进行:

  1. 检查web.xml文件以查找具有给定URI的taglib标记,然后按照taglib-location标记实际加载TLD。
  2. 如果未找到与#1匹配的情况,则递归检查应用程序中包含指定URI的TLD的所有JAR的META-INF目录。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" >

其中uri属性值解析为容器理解的位置,并且prefix属性通知容器标记的哪些位是自定义操作。