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

JSTL Core详解(二)

    博客分类:
  • JSP
阅读更多
<c:out>标签是一个最常用的标签,用于在JSP中显示数据。它的属性和描述如表所示:
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”。

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

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

var
需要被删除的变量名

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

下面看一个示例:
<c:remove var="sampleValue" scope="session"/>
${sessionScope.sampleValue} <br>

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

用于异常捕获的 <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来决定错误信息的提示。

用于判断的 <c:if> 标签
      <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”变量中。

用于复杂判断的 <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 、12、13
         </c:otherwise>
</c:choose>

该示例将判断request请求提交的传入控件数组参数中,下标为“2”控件内容是否为“11”或“12”或“13”,并根据判断结果显示各自的语句,若都不是则显示“not 11 、12、13”。
用于循环的 <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”显示在页面上。

用于分隔字符的 <c:forTokens> 标签
     <c:forTokens>标签可以根据某个分隔符分隔指定字符串,相当于java.util.StringTokenizer类。它的属性和描述如表所示
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
用于包含页面的<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 。

用于得到URL地址的<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 属性,达到链接的目的。

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

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

用于包含传递参数的<c:param>标签
<c:param> 用来为包含或重定向的页面传递参数。
name
传递的参数名

value
传递的参数值(可选)

分享到:
评论

相关推荐

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

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

    java jstl学习详解过程

    ### Java JSTL 学习详解过程 #### JSTL简介 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是一组由 Sun Microsystems 提供的标准标签库,它允许开发者在 JSP 页面中使用预定义的...

    jstl标签详解.doc

    **JSTL Core库的主要标签**: 1. ****:用于捕获JSP页面中的异常,可以将异常存储在一个变量中供后续处理。 2. ****、****和****:实现类似于Java中的if...else结构,根据条件执行不同的代码块。 3. ****:遍历集合...

    JSTL深入详解,JSTL学习文档

    **JSTL(JavaServer Pages Standard Tag Library)深入详解** JSTL,全称为JavaServer Pages Standard Tag Library,是Java Web开发中一个重要的标准库,主要用于简化JSP页面的编程,减少Java代码在JSP页面中的使用...

    JSTL详解

    &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; ``` 这里的`prefix="c"`是自定义的前缀,`uri`是JSTL核心库的URI。 此外,为了使用特定的标签库,比如格式化标签库(fmt),需要在`web.xml`中...

    JSTL详解--Core 标签库介绍

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

    EL和JSTL使用详解

    #### 二、JSTL(JavaServer Pages Standard Tag Library)简介及使用方法 JSTL是一个为JSP页面提供标准标记的标签库,它极大地简化了JSP页面的开发过程,使得开发者能够更方便地控制页面的流程逻辑和布局。JSTL包含...

    JSTL详解 DOC文档 较全的JSTL标记说明

    #### 二、JSTL核心标签详解 JSTL 核心标签库提供了一系列常用的功能,如循环、条件判断等。 **示例代码:** ```jsp &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; ; charset=UTF-8" ...

    jstl的使用有关JSTL的用法详解

    **JSTL(JavaServer Pages Standard Tag Library)详解** JSTL是JavaServer Pages标准标签库,它提供了一系列标签来简化JSP页面的编写,使代码更加简洁、易读,提高开发效率。JSTL主要包含五个核心标签库:Core、 ...

    JSTL实例讲解大全

    **JSTL(JavaServer Pages Standard Tag Library)详解** JSTL是JavaServer Pages标准标签库,它提供了一系列标签来简化JSP页面的开发,帮助开发者脱离Java代码,实现更清晰、更易于维护的页面逻辑。JSTL的核心组件...

    JSTL--Core标签详解

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

    JSTL 标签大全详解

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

    jstl标签 forEach详解

    jstl forEach 标签详解 jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将集合中的成员循序浏览一遍。该标签的运作方式为当条件符合时,就会持续重复执行的...

    JSTL 使用详解

    **JSTL(JavaServer Pages Standard Tag Library)详解** JSTL是JavaServer Pages标准标签库,它提供了一系列用于简化JSP开发的标签,旨在减少在JSP页面中使用脚本语言,提升代码的可读性和可维护性。JSTL主要包含...

    JSTL详解---附源码

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

    EL JSTl详解word文档

    1. **核心标签库 (Core Tags)**:提供了处理循环、条件判断、输出、URL重写等基本功能。 2. **国际化标签库 (I18N Tags)**:支持多语言环境,如日期和数字的格式化。 3. **数据库标签库 (JDBC Tags)**:用于数据库...

    jstl标签详解(jsp开发必看)

    &lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt; &lt;%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %&gt; ``` 至此,你应该对JSTL有了更深入的理解,能够熟练地在JSP开发中运用...

Global site tag (gtag.js) - Google Analytics