`
mmjj4067
  • 浏览: 7027 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSTL Core标签库

阅读更多
Core标签库,又被称为核心标签库,该标签库的工作是对于JSP页面一般处理的封装。在该标签库中的标签一共有14个,被分为了四类,分别是:
q         多用途核心标签:<c:out>、<c:set>、<c:remove>、<c:catch>。
q         条件控制标签:<c:if>、<c:choose>、<c:when>、<c:otherwise>。
q         循环控制标签:<c:forEach>、<c:forTokens>。
q         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 当value为null时显示的数据(可选)
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 保存判断结果true或false的变量名,该变量可供之后的工作使用(可选)
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”的条件语句。
q         <c:choose>标签没有属性,可以被认为是父标签,<c:when>、<c:otherwise>将作为其子标签来使用。
q         <c:when>标签等价于“if”语句,它包含一个test属性,该属性表示需要判断的条件。
q         <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 、12、13
         </c:otherwise>
</c:choose>
该示例将判断request请求提交的传入控件数组参数中,下标为“2”控件内容是否为“11”或“12”或“13”,并根据判断结果显示各自的语句,若都不是则显示“not 11 、12、13”。
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方法的工作。它包含url和context两个属性,属性含义和<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>


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/giky2323/archive/2007/03/24/1539962.aspx
分享到:
评论

相关推荐

    JSTL Core标签库资料

    从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。

    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...

    JSTL标签库及使用方法

    ### 使用JSTL Core标签库 **迭代**:`&lt;c:forEach&gt;`标签用于遍历集合或数组。例如,遍历一个ArrayList: ```jsp ${list}" var="item"&gt; ${item} ``` **条件语句**:`&lt;c:if&gt;`和`&lt;c:choose&gt;`、`&lt;c:when&gt;`、`...

    jstl1.2标签库jar包

    `jstl-impl-1.2.jar`包含了处理表达式语言(EL, Expression Language)、核心标签库(Core)、函数库(Function)、国际化(fmt)以及SQL操作等的具体实现。 **JSTL 1.2 主要功能及标签** - **Core标签库(c)** ...

    jstl标签库 手册

    JSTL的核心标签库(Core Library)是其最常用的部分,提供了多种功能强大的标签。 1. JSTL1.1 标签库: - **核心标签库(Core Tags)**:包括用于输出、设置变量、移除变量和异常捕获的标签,如`&lt;c:out&gt;`、`...

    JSTL标准标签库

    1. **核心标签库 (Core Tags):** 这个库定义了`cc.tld`,包含了用于常见任务的标签,如数据管理、流程控制和输出。主要标签如下: - `&lt;c:out&gt;`:用于输出变量或表达式的值,支持EL(Expressions Language)。`value`...

    jstl标准标签库

    2. **JSTL的核心标签库(core)**: - `&lt;c:out&gt;`:用于安全地输出变量的值,防止XSS攻击。 - `&lt;c:if&gt;`:提供条件判断功能,类似Java的`if`语句。 - `&lt;c:choose&gt;`, `&lt;c:when&gt;`, `&lt;c:otherwise&gt;`:提供类似于Java的...

    JSTL核心标签库的jar包

    在Java Web开发中,JSTL的核心标签库(Core Tag Library)包含以下几个主要方面: 1. **流程控制**: - `&lt;c:if&gt;`:用于执行条件判断,可以根据指定的条件执行不同的代码块。 - `&lt;c:choose&gt;`, `&lt;c:when&gt;`, `...

    JSTL核心标签库使用范例

    2. **在JSP页面中声明标签库**:使用`&lt;%@ taglib %&gt;`指令导入JSTL核心标签库,如`&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;`。 3. **使用标签**:接着,可以使用定义的前缀(例如“c”)来...

    介绍了JSTL标准标签库的PPT

    JSTL由多个核心标签库组成,如Core、XML、JDBC、JSTL函数等,覆盖了数据处理、迭代、条件判断、I/O操作等多个方面。 **1. JSTL Core标签库:** 这是JSTL中最基本的部分,包含用于控制流程、页面导航、URL处理和HTML...

    JSTL 核心标签库 使用

    本文将深入探讨JSTL的核心标签库(core tag library),主要包括`&lt;c:set&gt;`、`&lt;c:remove&gt;`、`&lt;c:catch&gt;`、`&lt;c:if&gt;`、`&lt;c:choose&gt;`以及`&lt;c:forEach&gt;`等标签的使用。 1. `&lt;c:set&gt;`标签: `&lt;c:set&gt;`用于设置变量的值,...

    JSTL标签库下载和配置使用

    JSTL有多个模块,如`core`(核心标签库)和`fmt`(格式化标签库),可以根据需要添加更多模块。 ### 三、JSTL标签的使用 JSTL提供了丰富的标签,包括控制流标签(`if`, `choose`, `when`, `otherwise`等)、迭代...

    JSTL标准标签库的应用

    ### JSTL标准标签库的应用 #### 一、JSTL简介 JSTL(JavaServer Pages Standard Tag Library)是一个开放源代码的JSP标签库,由Apache的Jakarta项目组进行维护。JSTL的设计目标是简化Web应用程序的开发过程,通过...

    JSTL标签库jar包文件

    **JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中的一个重要组成部分,主要用于简化JSP页面中的代码,提升可维护性和可读性。JSTL提供了一系列预定义的标签,用于处理常见的任务,如迭代、...

    JSTL 核心标签库

    JSTL(JavaServer Pages Standard Tag Library)核心标签库是Java Web开发中的一个强大工具,它提供了一系列预定义的标签,用于简化JSP页面的逻辑,提高代码的可读性和维护性。JSTL核心标签库主要包含四个类别:...

    jstl标签库的配置

    **JSTL(JavaServer Pages Standard Tag Library)标签库**是Java Web开发中常用的一组标准标签库,它提供了一套方便、高效的JSP页面控制和数据处理标签,旨在简化JSP开发,提高代码的可读性和可维护性。本篇文章将...

    JSTL1.1标签库,学习JSTL的好资料

    **三、JSTL Core标签库** 1. ****:用于输出值,例如`${expr}" default="defaultVal" escapeXml="true/false"&gt;`,其中`escapeXml`属性决定是否对特殊字符进行转义,默认为true。 2. ****:设置变量,如`...

Global site tag (gtag.js) - Google Analytics