jsp - URI 在识别 JSTL 标签库中起什么作用?

标签 jsp jsf jstl uri

在 .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,则无法解析引用。它就像一个名字或 key 。

例如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 - URI 在识别 JSTL 标签库中起什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31291014/

相关文章:

java - Struts 2/Foundation 5 - ModelDriven 类和文件上传

java - 使用 startsWith 比较两个字符串时出现编译错误

jsp - <c :if> and <c:when>? 和有什么区别

java - 如何从Mysql Db在struts2中显示blob类型的图像

java - 将值从一个 JSP 页面传递到另一个 JSP 页面并从第一个 JSP 获取响应数据

jsf - 是方向 ="horizontal"在 p :tree is available in primefaces-3. 3.1

java - 来自数据库的 Web View 的持续数据轮询

java - 我是否正确使用了 EJB?

jsp - 哪个更好?

websphere - 强制编译 .tag 文件