5

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

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

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

谢谢

4

3 回答 3

8

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

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

于 2009-11-27T00:04:56.337 回答
4

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

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

  1. 检查web.xml文件中包含给定 URI 的匹配taglib标签,然后按照taglib-location标签实际加载 TLD。
  2. 如果没有找到与 #1 的匹配项,则递归地检查META-INF应用程序中所有 JAR 的目录,以查找包含指定 URI 的 TLD。
于 2009-11-27T00:17:45.783 回答
-1

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

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

于 2014-08-22T10:04:54.903 回答