任何机构是否可以验证这一点,如果我错了,那么在任何地方进行更正和/或进一步详细说明。
我相信uri只能唯一地标识一个标记库,因为它在tld的<uri>
元素中指定。
就像我在JSP中有这个
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
为了 SSL 支持,是否存在类似于此(以下)的内容?
<%@ taglib uri="https://java.sun.com/jsp/jstl/core" prefix="c"%>
注意: http v / s htpps
答案 0 :(得分:1)
JSP specification将uri
指令的taglib
属性定义为:
绝对URI或相对URI规范 唯一标识与之关联的标记库描述符 这个前缀。 URI用于将标记库的描述定位为 第JSP.7节“标记扩展”中指出。
我不会在规范的“章节JSP.7”中包含任何引用,因为信息量很大,但它基本上说明了在哪里查找TLD文件以及如何根据{{匹配它们1}}价值。
服务器搜索应用程序内的TLD文件(在预定义的位置),uri
仅用于唯一标识它们。服务器不会从uri
。
实际上uri
就是URI,所以你可以使用除了地址之外的其他东西(这是一个URL),例如URN。
例如,如果你有一个像:
这样的JSPuri
并且您在申请中(可能在WEB-INF内)提供了一个TLD,如:
<%@ taglib prefix="p" uri="urn:isbn:0451450523" %>
<p:myTag/>
然后它应该工作。
注意我使用的是<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.1</tlib-version>
<short-name>demo</short-name>
<uri>urn:isbn:0451450523</uri>
<tag>
<name>myTag</name>
<tag-class>test.pack.MyTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
之类的URN。当然这样做是没有意义的 - 因为那个特定的URN识别出一本书 - 但它应该有效。
当然还有其他原因不能从urn:isbn:0451450523
地址下载TLD,比如不必要的流量,你的应用程序将依赖于可能已关闭的外部服务器,或者应用程序是内部的并被拒绝访问互联网,因此无法访问该地址......等。