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

时间:2009-11-27 00:01:35

标签: java jsp sitemesh

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

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>

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

由于

3 个答案:

答案 0 :(得分:8)

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

有关详细信息,请参阅Java EE tutorial

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:-1)

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

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