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

JSTL详解--Core 标签库

阅读更多

JSTL1.1中有以下这些标签库是被支持的: Core标签库、 XML processing标签库、 I18N formatting标签库、 Database access标签库、 Functions标签库。对应的标识符见表2所示: 

2 标签库的标识符

标签库

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

 

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

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的标签进行了工作。对于该标签的功能,这里暂时不作具体讲解,只是让读者能够有个简单的概念,了解怎样定义和使用标签库。

 

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>

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

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

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

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

 

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

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

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

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

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

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

 

属性

描述

var

需要被删除的变量名

scope

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

下面看一个示例:

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

${sessionScope.sampleValue} <br>

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

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来决定错误信息的提示。

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

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

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 变量中。  

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

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

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

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显示在页面上。

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

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

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

 

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

<c:import>标签允许包含另一个 JSP页面到本页面来。它的属性和描述如表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

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

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

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属性,达到链接的目的。

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

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

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

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

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

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

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

属性

描述

name

传递的参数名

value

传递的参数值(可选)

下面是一个示例:

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

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

</c:redirect>

该示例将为重定向 MyHtml.jsp传递指定参数 userName=RW

 

1.JSTL 标签  fn 函数

 

 

 

      <c:choose>

              <c:when test="${fn:length(objs[0]) > 10}">                          

               <c:out value="${fn:substring(objs[0], 0, 8)}..." /> 

              </c:when>                         

              <c:otherwise>

                <c:out value="${(objs[0])}" /> 

              </c:otherwise>              

      </c:choose>

 

 

 

       其中objs[0]是所要截取的字符串;

 

 

 

2.struct2 标签所处理的字符串很好用,

 

    因为返回到页面的变量最终以字符串的形式显示,故它适用所有字符串的方法:

 

 

 

          <s:if test="pdProduct.pdBrand.brandName.length() > 10">

           <s:property value="pdProduct.pdBrand.brandName.substring(0,8).concat('...')"/>          

          </s:if>

          <s:else>

           <s:property value="pdProduct.pdBrand.brandName"/>

          </s:else>

 

 

 

      pdProduct.pdBrand.brandName为后台返回要显示的数据

 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tiger20015/archive/2008/11/27/3389882.aspx

 

分享到:
评论

相关推荐

    JSTL详解--Core 标签库介绍

    **JSTL详解--Core标签库介绍** JavaServer Pages(JSP)标准标记库(JSTL)是一个关键的工具,旨在减少JSP页面中的脚本元素,提高代码的可维护性和可读性。JSTL包含了一系列定制的标记库,用于实现常见的Web应用...

    JSTL详解--标签库介绍.doc

    ### JSTL详解--标签库介绍 #### 一、引言 JSTL(JavaServer Pages Standard Tag Library),即JavaServer Pages标准标签库,是一种专为简化和增强JSP(JavaServer Pages)页面开发而设计的技术。通过提供一组预定...

    JSTL详解---附源码

    **JSTL详解** JSTL,全称JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库,它提供了一套用于处理常见JSP任务的标签,如迭代、条件判断、XML处理等,旨在减少在JSP页面中的脚本代码,提高页面的...

    JSTL详解--EL表达式

    **JSTL(JavaServer Pages Standard Tag Library)**是Java社区为了解决JSP页面中大量Java代码嵌入问题而提出的一种标准标签库。它提供了一系列的预定义标签,用于简化JSP页面的开发,增强可读性和可维护性。JSTL的...

    JSTL--Core标签详解

    在JSTL 1.1版本中,提供了五个主要的标签库,分别是Core、XML processing、I18N formatting、Database access和Functions。每个库都有特定的URI和前缀,方便在JSP页面中引用。 Core标签库是JSTL的基础,包含了处理...

    JSTL详解--jsp页面编写规范详解

    ### JSTL详解—JSP页面编写规范 #### 概述 JSTL(JSP Standard Tag Library,JSP标准标签库)是一种被广泛应用于JavaServer Pages (JSP) 页面中的标准化标签库,旨在简化JSP页面开发过程,提高代码可读性和可维护...

    jstl-api-1.2.jar

    1. **Core标签库**:提供了基本的控制结构,如条件语句、循环、重定向、URL操作等。例如`&lt;c:if&gt;`, `&lt;c:choose&gt;`, `&lt;c:when&gt;`, `&lt;c:otherwise&gt;`, `&lt;c:forEach&gt;`, `&lt;c:forTokens&gt;`等。 2. ** fmt 标签库**:用于国际...

    jstl1.2 api--jstl-1_2-mrel2-api.zip

    - **声明标签库**:在JSP页面顶部使用`&lt;%@ taglib %&gt;`指令来导入JSTL库,例如`&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;` - **标签使用**:通过指定的前缀,可以调用JSTL库中的标签,如`$...

    jstl1.2-lib包

    **JSTL1.2库包详解** JSTL,全称为JavaServer Pages Standard Tag Library,是Java服务器页面标准标签库。它为JSP开发者提供了一系列预定义的标签,简化了JSP页面的编写,使得代码更加简洁和可读。JSTL1.2是JSTL的...

    jstl-1.2.rar_JSTL_jstl 1.2_jstl jar_jstl-1.1.2.jar _jstl.jar

    JSTL,全称为JavaServer Pages Standard Tag Library,是Java Web开发中的一个标准标签库,它为开发者提供了在JSP页面中处理常见任务的标签,例如迭代、条件判断、XML处理等,从而减少Java脚本的使用,提高代码的...

    jstl-1.1.2标签库

    **JSTL 1.1.2 标签库详解** JavaServer Pages Standard Tag Library (JSTL) 是一个用于增强JSP页面功能的开源标签库,它旨在提高JSP页面的可读性和可维护性,减少在页面中直接编写Java代码的情况。JSTL 1.1.2是该库...

    jstl-1.1.2+standard-1.1.2+servlet-api

    **JSTL核心库(Core)** JSTL的核心库提供了许多用于控制流程、迭代和条件判断的标签。例如: - `&lt;c:if&gt;`:用于执行条件判断。 - `&lt;c:choose&gt;`, `&lt;c:when&gt;`, `&lt;c:otherwise&gt;`:用于创建多分支的条件语句。 - `...

    jstl标签详解jstl标签详解jstl标签详解

    在实际开发中,`JSTL_标签库详解(一个不漏).doc`和`JSTL核心标签库.doc`这样的文档是极有价值的参考资料,它们详细解释了每个标签的用法、属性以及示例,可以帮助开发者快速理解和掌握JSTL的使用。确保阅读并理解...

    JSTL详解

    JavaServer Pages Standard Tag Library (JSTL) 是一套用于简化JSP开发的标签库,它提供了许多预定义的标签,让开发者能够以更简洁、更易于理解和维护的方式编写JSP页面。JSTL的主要目标是减少在JSP页面中使用脚本...

    jstl-1.2.jar下载

    **JSTL 1.2 知识点详解** JavaServer Pages Standard Tag Library(JSTL)是一个标准的标签库,用于简化JavaWeb应用程序的开发。JSTL 1.2是该库的一个版本,提供了丰富的标签来处理常见的任务,如迭代、条件判断、...

    jstl-1.1.2.jar

    这个版本是在JSTL的发展历程中的一个重要里程碑,它包含了对JSTL核心标签库、SQL标签库、XML标签库以及国际化标签库的支持。 **JSTL的组成部分** JSTL通常包括以下几个主要部分: 1. **Core库**:提供了基本的...

    JSTL 标签大全详解

    ### JSTL 标签大全详解 #### 一、JSTL标签介绍 ##### 1、什么是JSTL? JSTL(JavaServer Pages Standard Tag Library,JavaServer 页面标准标签库)是由 Apache 开发的一组标准标签库,用于简化 JSP 页面的开发。...

    jstl-1.2.jar

    **JSTL(JavaServer Pages Standard Tag Library)详解** JSTL是JavaServer Pages标准标签库,它为JavaWeb开发提供了强大的标签集,用于简化HTML或XML页面中的Java代码。JSTL 1.2是该库的一个版本,旨在提高JSP页面...

Global site tag (gtag.js) - Google Analytics