我使用JSTL时执行了什么代码?

时间:2014-03-17 18:00:49

标签: java jsp jstl taglib

当我开发jsp页面时,我使用jstl。

例如我使用相同的结构

...
<c:forEach items="${objects}" var="object">
    <td>${object.name} </td>
</c:forEach>
...

我知道前缀c定义了何时创建包含页面。对于c前缀:

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

我认为幕后某处执行代码(可能是java代码)

这是真实的陈述吗?

此代码如何与uri连接?

一般情况如何?

3 个答案:

答案 0 :(得分:0)

在这里,您可以下载JSTL的源代码:http://www.java2s.com/Code/Jar/j/Downloadjstl12sourcesjar.htm

在那里你会找到你问题的答案:URI和前缀之间的联系。

答案 1 :(得分:0)

URI只是一个标识符。如果你打开jstl jar文件中的c.tld文件,你会看到这个uri声明。

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
    version="2.1">

  <description>JSTL 1.1 core library</description>
  <display-name>JSTL core</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>c</short-name>
  <uri>http://java.sun.com/jsp/jstl/core</uri>

是的,它会在幕后执行代码。

<c:forEach>类似,您可以参考以下链接获取源代码 click here

答案 2 :(得分:-1)

使用maven

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>

您可以在IDE中附加和浏览源代码。