`
huangfoxAgain
  • 浏览: 36948 次
  • 性别: Icon_minigender_1
  • 来自: 常州
社区版块
存档分类
最新评论

JSTL---JSTL标签库介绍

阅读更多

JSTL标签库介绍  

JSTL1.1中有以下这些标签库是被支持的:Core标签库、XML processing标签库、I18N formatting标签库、Database access标签库、Functions标签库。

标签库 URI 前缀

Core http://java.sun.com/jsp/jstl/core c

XML processing http://java.sun.com/jsp/jstl/xml x

I18N formatting http://java.sun.com/jsp/jstl/fmt fmt

Database access http://java.sun.com/jsp/jstl/sql sql

Functions http://java.sun.com/jsp/jstl/functions fn

 

下面看例9.5,简单使用标签库的示例。

9.5:简单JSTL标签库示例

<%@ page contentType="text/html; charset=UTF-8"%>

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

 <body>

    <c:forEach var="i" begin="1" end="10" step="1">

      ${i}

      <br />

    </c:forEach>

 </body>

</html>

在该示例的JSP页面中声明了将使用Core标签库,它的URI为“http://java.sun.com/jsp/jstl/core”,前缀为“c”。之后,页面中<c:forEach>标签就是使用了JSTL的标签进行了工作。对于该标签的功能,这里暂时不作具体讲解,只是让读者能够有个简单的概念,了解怎样定义和使用标签库。

 

9.3 JSTL Core标签库

Core标签库,又被称为核心标签库,该标签库的工作是对于JSP页面一般处理的封装。在该标签库中的标签一共有14个,被分为了四类,分别是:

多用途核心标签:<c:out><c:set><c:remove><c:catch>

条件控制标签:<c:if><c:choose><c:when><c:otherwise>

循环控制标签:<c:forEach><c:forTokens>

URL相关标签:<c:import><c:url><c:redirect><c:param>

以下是各个标签的用途和属性以及简单示例。

9.3.1 用于显示的<c:out>标签

<c:out>标签是一个最常用的标签,用于在JSP中显示数据。它的属性和描述如表9.3所示:

9.3 <c:out>标签属性和说明

属性描述

value   输出到页面的数据,可以是EL表达式或常量(必须)

default   valuenull时显示的数据(可选)

escapeXml   当设置为true时会主动更换特殊字符,比如“&lt;,&gt;,&amp;”(可选,默认为true

 

JSTL1.0的时候,在页面显示数据必须使用<c:out>来进行。然而,在JSTL1.1中,由于JSP2.0规范已经默认支持了EL表达式,因此可以直接在JSP页面使用表达式。下面看一个示例。

<c:out value="${sessionScope.anyValue}" default="no value" escapeXml="false"/>

该示例将从Session查找名为“anyValue”的参数,并显示在页面,若没有找到则显示“no value”。

 

9.3.2 用于赋值的<c:set>标签

<c:set>标签用于为变量或JavaBean中的变量属性赋值的工作。它的属性和描述如表9.4所示:

9.4 <c:set>标签属性和说明

属性  描述

value  值的信息,可以是EL表达式或常量

target  被赋值的JavaBean实例的名称,若存在该属性则必须存在property属性(可选)

property  JavaBean实例的变量属性名称(可选)

var  被赋值的变量名(可选)

scope  变量的作用范围,若没有指定,默认为page(可选)

 

当不存在value的属性时,将以包含在标签内的实体数据作为赋值的内容。下面看一个示例:

<c:set value="this is andy" var="oneString"/>

${oneString} <br>

该示例将为名为“oneString”的变量赋值为“this is andy”,其作用范围为page

9.3.3 用于删除的<c:remove>标签

<c:remove>标签用于删除存在于scope中的变量。它的属性和描述如表9.5所示:

9.5 <c:remove>标签属性和说明

属性 描述

var 需要被删除的变量名

scope 变量的作用范围,若没有指定,默认为全部查找(可选)

 

下面看一个示例:

<c:remove var="sampleValue" scope="session"/>

${sessionScope.sampleValue} <br>

该示例将存在于Session中名为“sampleValue”的变量删除。下一句EL表达式显示该变量时,该变量已经不存在了。

9.3.4 用于异常捕获的<c:catch>标签

<c:catch>标签允许在JSP页面中捕捉异常。它包含一个var属性,是一个描述异常的变量,改变量可选。若没有var属性的定义,那么仅仅捕捉异常而不做任何事情,若定义了var属性,则可以利用var所定义的异常变量进行判断转发到其他页面或提示报错信息。看一个示例。

<c:catch var="err">

         ${param.sampleSingleValue[9] == 3}

</c:catch>

${err}

当“${param.sampleSingleValue[9] == 3}”表达式有异常时,可以从var属性“err”得到异常的内容,通常判断“err”是否为null来决定错误信息的提示。

9.3.5 用于判断的<c:if>标签

<c:if>标签用于简单的条件语句。它的属性和描述如表9.6所示:

9.6 <c:if>标签属性和说明

属性 描述

test 需要判断的条件

var 保存判断结果truefalse的变量名,该变量可供之后的工作使用(可选)

scope 变量的作用范围,若没有指定,默认为保存于page范围中的变量(可选)

 

下面看一个示例:

<c:if test="${paramValues.sampleValue[2] == 12}" var="visits">

      It is 12

</c:if><br>

${visits} <br>

该示例将判断request请求提交的传入控件数组参数中,下标为“2”的控件内容是否为“12”,若为12则显示“It is 12”。判断结果被保存在page范围中的“visits”变量中。  

9.3.6 用于复杂判断的<c:choose><c:when><c:otherwise>标签

这三个标签用于实现复杂条件判断语句,类似“if,elseif”的条件语句。

<c:choose>标签没有属性,可以被认为是父标签,<c:when><c:otherwise>将作为其子标签来使用。

<c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。

<c:otherwise>标签没有属性,它等价于“else”语句。

下面看一个复杂条件语句的示例。

<c:choose>

         <c:when test="${paramValues.sampleValue[2] == 11}">

                   not 12 not 13,it is 11

         </c:when>

         <c:when test="${paramValues.sampleValue[2] == 12}">

                   not 11 not 13,it is 12

         </c:when>

         <c:when test="${paramValues.sampleValue[2] == 13}">

                   not 11 not 12,it is 13

         </c:when>

         <c:otherwise>

                   not 11 1213

         </c:otherwise>

</c:choose>

该示例将判断request请求提交的传入控件数组参数中,下标为“2”控件内容是否为“11”或“12”或“13”,并根据判断结果显示各自的语句,若都不是则显示“not 11 1213”。

9.3.7 用于循环的<c:forEach>标签

<c:forEach>为循环控制标签。它的属性和描述如表9.7所示:

9.7 <c:forEach>标签属性和说明

属性 描述

items 进行循环的集合(可选)

begin 开始条件(可选)

end 结束条件(可选)

step 循环的步长,默认为1(可选)

var 做循环的对象变量名,若存在items属性,则表示循环集合中对象的变量名(可选)

varStatus 显示循环状态的变量(可选)

 

下面看一个集合循环的示例。

<%ArrayList arrayList = new ArrayList();

                   arrayList.add("aa");

                   arrayList.add("bb");

                   arrayList.add("cc");

%>

<%request.getSession().setAttribute("arrayList", arrayList);%>

<c:forEach items="${sessionScope.arrayList}" var="arrayListI">

         ${arrayListI}

</c:forEach>

该示例将保存在Session中的名为“arrayList”的ArrayList类型集合参数中的对象依次读取出来,items属性指向了ArrayList类型集合参数,var属性定义了一个新的变量来接收集合中的对象。最后直接通过EL表达式显示在页面上。下面看一个简单循环的示例。

<c:forEach var="i" begin="1" end="10" step="1">

      ${i}<br />

</c:forEach>

该示例从“1”循环到“10”,并将循环中变量“i”显示在页面上。

9.3.8 用于分隔字符的<c:forTokens>标签

<c:forTokens>标签可以根据某个分隔符分隔指定字符串,相当于java.util.StringTokenizer类。它的属性和描述如表9.8所示:

9.8 <c:forTokens>标签属性和说明

属性 描述

items 进行分隔的EL表达式或常量

delims 分隔符

begin 开始条件(可选)

end 结束条件(可选)

step 循环的步长,默认为1(可选)

var 做循环的对象变量名(可选)

varStatus 显示循环状态的变量(可选)

 

下面看一个示例。

<c:forTokens items="aa,bb,cc,dd" begin="0" end="2" step="2" delims="," var="aValue">

         ${aValue}

</c:forTokens>

需要分隔的字符串为“aa,bb,cc,dd”,分隔符为“,”。begin属性指定从第一个“,”开始分隔,end属性指定分隔到第三个“,”,并将做循环的变量名指定为“aValue”。由于步长为“2”,使用EL表达式${aValue}只能显示“aa cc”。

 

9.3.9 用于包含页面的<c:import>

<c:import>标签允许包含另一个JSP页面到本页面来。它的属性和描述如表9.9所示:

9.9 <c:import>标签属性和说明

属性 描述

url 需要导入页面的URL

context Web Context该属性用于在不同的Context下导入页面,当出现context属性时,必须以“/”开头,此时也需要url属性以“/”开头(可选)

charEncoding 导入页面的字符集(可选)

var 可以定义导入文本的变量名(可选)

scope 导入文本的变量名作用范围(可选)

varReader 接受文本的java.io.Reader类变量名(可选)

 

下面看一个示例。

<c:import url="/MyHtml.html" var="thisPage" />

<c:import url="/MyHtml.html" context=”/sample2” var="thisPage"/>

<c:import url="www.sample.com/MyHtml.html" var="thisPage"/>

该示例演示了三种不同的导入方法,第一种是在同一Context下的导入,第二种是在不同的Context下导入,第三种是导入任意一个URL

9.3.10 用于得到URL地址的<c:url>标签

<c:url>标签用于得到一个URL地址。它的属性和描述如表9.10所示:

9.10 <c:url>标签属性和说明

属性 描述

value 页面的URL地址

context Web Context该属性用于得到不同Context下的URL地址,当出现context属性时,必须以“/”开头,此时也需要url属性以“/”开头(可选)

charEncoding URL的字符集(可选)

var 存储URL的变量名(可选)

scope 变量名作用范围(可选)

 

下面看一个示例:

<c:url value="/MyHtml.html" var="urlPage" />

<a href="${urlPage}">link</a>

得到了一个URL后,以EL表达式放入<a>标签的href属性,达到链接的目的。

9.3.11 用于页面重定向的<c:redirect>标签

<c:redirect>用于页面的重定向,该标签的作用相当于response.setRedirect方法的工作。它包urlcontext两个属性,属性含义和<C:url>标签相同。下面看一个示例。

<c:redirect url="/MyHtml.html"/>

该示例若出现在JSP中,则将重定向到当前Web Context下的“MyHtml.html”页面,一般会与<c:if>等标签一起使用。

9.3.12 用于包含传递参数的<c:param>标签

<c:param>用来为包含或重定向的页面传递参数。它的属性和描述如表9.11所示:

9.11 <c:param>标签属性和说明

属性 描述

name 传递的参数名

value 传递的参数值(可选)

 

下面是一个示例:

<c:redirect url="/MyHtml.jsp">

<c:param name="userName" value=”RW” />

</c:redirect>

该示例将为重定向的“MyHtml.jsp”传递指定参数“userName=RW’”。

< type=text/javascript>

分享到:
评论

相关推荐

    jstl-api-1.2.jar、jstl-impl-1.2.jar

    在运行时,这个jar文件需要被加入到Web应用的服务器类路径中,以便服务器能够执行JSTL标签的功能。它包含了核心库(Core)、SQL、XML、JSTL国际化的功能模块。 **JSTL的核心库(Core)模块** 提供了基本的控制结构...

    jstl标签jar包(jstl-api-1.2和jstl-impl-1.2)

    1. **jstl-api-1.2.jar**:这是JSTL的API接口定义,包含了所有JSTL标签库的接口和抽象类。开发人员在编写JSP页面时需要导入这个包,以便使用JSTL提供的各种标签。这个包不包含实际的实现,而是为编译时类型检查和...

    jstl-impl-1.2.jar和jstl-api-1.2.jar

    它定义了所有JSTL标签库的接口和类,这些接口和类用于和JSP页面进行交互。开发者在编写JSP页面时,会引用这个API来使用JSTL提供的各种标签。例如,`&lt;c:forEach&gt;`、`&lt;fmt:formatDate&gt;`等,这些都是通过API接口实现的...

    jstl-impl-1.2.jar

    jstl-api-1.2、jstl-impl-1.2.jar标签包,两份。

    jstl-impl-1.2.jar.rar_ jstl-impl-1.2.jar _jstl-impl-1.2_jstl-imp

    impl-1.2.jar",这意味着这个压缩包仅包含JSTL的实现库,开发者在使用时还需要确保他们的项目已经配置了JSTL的API库(如jstl.jar),以便能够正确编译和运行包含JSTL标签的JSP页面。 综上所述,"jstl-impl-1.2.jar...

    [jstl-1.2.jar]和[jstl-api-1.2.jar、standard.jar]两个版本.zip

    包含了两个版本jstl文件,standard.jar和jstl-api-1.2.jar是一个版本,导入时需要将两个都导入,jstl-1.2.jar是高版本的,是将低版本的两个文件合成一个了,故只需要导入一个文件即可,导入的同时在jsp文件首行写入 ...

    包含jstl-api-1.2.1.jar,jstl-1.2.jar,jstl-impl-1.2.jar,standard-1.1.2.jar

    - **提高可读性**:JSTL标签比传统的脚本元素更加清晰,使得JSP页面更易于理解和维护。 - **分离关注点**:通过使用JSTL,开发者可以将业务逻辑和表现层分离,使得代码更加模块化。 - **减少Java代码**:JSTL减少了...

    jstl-api-1.2.jar和jstl-impl.jar

    这个库文件包含了实际处理JSTL标签的类和方法。当你在JSP页面中使用JSTL标签时,容器(如Tomcat)会加载`jstl-impl.jar`中的实现,执行相应的逻辑并生成HTML输出。 在Java Web开发中,JSTL与EL(Expression ...

    jakarta.servlet.jsp.jstl-api-2.0.0.jar

    将"jakarta.servlet.jsp.jstl-api-2.0.0.jar"添加到Tomcat的类路径中,可以确保JSP页面能够识别并使用JSTL标签。 JSTL主要包含以下几个核心标签库: 1. **Core Library**(c:):提供了基本的控制流和数据处理功能...

    jstl-api-1.2.jar

    例如,你可以用EL来获取Bean的属性值,然后用JSTL标签进行条件判断或循环遍历。 **使用JSTL的注意事项** 1. **引入依赖**:在Web应用的`WEB-INF/lib`目录下添加`jstl-api-1.2.jar`和对应的实现库(如`jstl-1.2.jar...

    jst-1.2、jstl-api-1.2、jstl-impl-1.2的jar包

    **jstl-api-1.2.jar** 文件是JSTL的API接口定义,其中包含所有JSTL标签库的接口和类。这个库提供了用于编译JSP页面时的类型安全引用,允许开发者在编译时检查JSTL标签的使用是否正确。它不包含任何实际的实现代码,...

    jstl-api-1.2.jar jstl-impl-1.2.jar

    它定义了所有JSTL标签的接口和类,是开发者在编写JSP页面时引用的库。API jar文件通常包含Java源代码的`.java`文件,但不包含实现,因此仅提供编译时的依赖。 2. **jstl-impl-1.2.jar**:这个文件包含了JSTL的实际...

    内含jstl-1.2、jstl-api-1.2、jstl-impl-1.2、standard-1.1.2

    1. **jstl-1.2.jar**:这是JSTL的核心库,包含了所有JSTL标签的实现。1.2版本是JSTL的一个稳定版本,发布于2004年,至今仍广泛使用。 2. **jstl-api-1.2.jar**:这个文件包含了JSTL的API接口定义,是开发者编译时...

    jstl-1.1.0.jar和jstl-1.2.0.jar

    4. 使用JSTL标签进行编程。 **总结**: JSTL是Java Web开发中的重要工具,通过提供一系列预定义的标签,可以减少JSP页面中的Java代码,提高可维护性和可读性。`jstl-1.1.0.jar`和`jstl-1.2.0.jar`是两个不同时期的...

    jstl-api-1.2.jar jstl-impl-1.2.jar mysql-connector-java-5.1.10-bin.jar

    在运行时,这个库需要被包含在应用服务器的运行时类路径中,以便服务器能够正确解析和执行JSTL标签。 MySQL Connector/J是MySQL数据库的Java驱动程序,用于在Java应用程序中连接到MySQL数据库。`mysql-connector-...

    jstl-api-1.2.jar、jstl-impl-1.2.jar、mysql-connector-java-5.1.10-bin.jar

    总结起来,`jstl-api-1.2.jar`和`jstl-impl-1.2.jar`组合用于实现JSP页面的JSTL标签,提升代码的可维护性,而`mysql-connector-java-5.1.10-bin.jar`则作为连接MySQL数据库的关键组件,使得Java应用能够方便地访问和...

    jstl-api-1.2.jar,jstl-impl-1.2.jar,mysql-connector-5.1.8.jar开发必备,三合一jar下载,已验证可用

    JSTL(JavaServer Pages Standard Tag Library)是Java Servlets和JavaServer Pages(JSP)中的一组标准标签库,它提供了一系列预定义的标签,用于简化页面逻辑和增强JSP页面的可读性。`jstl-api-1.2.jar`包含JSTL的...

    jstl.jar,jstl-1.2.jar,jstl-api-1.2.jar

    2. **配置Web.xml**:在`web.xml`配置文件中,需要设置一个`taglib`元素来声明JSTL标签库的URI,以便在JSP页面中使用。 ```xml &lt;web-app&gt; ... &lt;jsp-config&gt; &lt;taglib-uri&gt;/tags/jstl&lt;/taglib-uri&gt; &lt;taglib-...

    jstl标准标签库jar包.zip

    jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2...

Global site tag (gtag.js) - Google Analytics