URI 在识别 JSTL 标签库中起什么作用?
Which role plays URI in identifying JSTL tag libraries?
在 .jsp 文件或 jsf facelets 中使用 JSTL 标签时,您必须声明要使用的标签库。
示例(jsp):
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
示例(jsf):
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core">
人们总是说 URI 除了使命名空间明确无误并提供额外的文档外,没有任何作用。我不相信这个。我知道 facelet/.jsp 不会通过互联网从 URI 加载任何信息。但是必须以某种方式使用正确的 URI 来标识正确的标记库。
谁能解释一下这是怎么做到的?
我查过这个:如果你只改变 URI 中的一个字母,你会得到一个异常:
org.apache.jasper.JasperException: /todolist.jsp(10,61) PWC6188:
The absolute uri: http://java.sux.com/jsp/jstl/core cannot be resolved
in either web.xml or the jar files deployed with this application
URI 在 taglib 定义文件中定义。如果没有正确的 URI,则无法解析引用。它就像一个名字或钥匙。
例如core.tld
<description>JSTL 1.2 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.2</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
您还可以在 web.xml
中定义自定义标签库的 URI
<taglib>
<taglib-uri>http://lelelu.org/mytag-io</taglib-uri>
<taglib-location>/WEB-INF/mytags-io.tld</taglib-location>
</taglib>
在 .jsp 文件或 jsf facelets 中使用 JSTL 标签时,您必须声明要使用的标签库。
示例(jsp):
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
示例(jsf):
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core">
人们总是说 URI 除了使命名空间明确无误并提供额外的文档外,没有任何作用。我不相信这个。我知道 facelet/.jsp 不会通过互联网从 URI 加载任何信息。但是必须以某种方式使用正确的 URI 来标识正确的标记库。
谁能解释一下这是怎么做到的?
我查过这个:如果你只改变 URI 中的一个字母,你会得到一个异常:
org.apache.jasper.JasperException: /todolist.jsp(10,61) PWC6188:
The absolute uri: http://java.sux.com/jsp/jstl/core cannot be resolved
in either web.xml or the jar files deployed with this application
URI 在 taglib 定义文件中定义。如果没有正确的 URI,则无法解析引用。它就像一个名字或钥匙。
例如core.tld
<description>JSTL 1.2 core library</description>
<display-name>JSTL core</display-name>
<tlib-version>1.2</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
您还可以在 web.xml
中定义自定义标签库的 URI<taglib>
<taglib-uri>http://lelelu.org/mytag-io</taglib-uri>
<taglib-location>/WEB-INF/mytags-io.tld</taglib-location>
</taglib>