JSP标准标签库之core标签库

来源:互联网 发布:java中强制类型转换 编辑:程序博客网 时间:2024/06/07 12:18
一、核心标签库主要包括通用标签、条件标签、迭代标签和与URL相关的标签。
在使用Core标签库的JSP文件的开始部分,添加代码:
<%@taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>

二、一般用途的标签,如<c:out>、<c:set>、<c:remove>、<c:catch>

1、<c:out>标签 用于输出

把计算结果输出到JspWriter对象。

语法1:没有body的情况。

    <c:out value=”value” [escapeXml=”{true|false}”] [default=”defaultValue”]/>

语法2:有body的情况。

    <c:out value=”value” [escapeXml=”{true|false}”]>

     defaultValue<!---可以是JSP代码->

</c:out>

属性:

value:Object,将要计算的表达式(Expression)。

excapeXml:Boolean,确定以下字符:<,>,&,’,”在结果字符串中是否被转换成字符实体代码,默认为true。

字符

字符实体

&lt;

&gt;

&

&amp;

&#039;

&#034;

default:Object,如果value是null,那么输出这个default值。

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

这个标签用于在某个范围(Request,Session,Application等)中设置某个值,或者设置某个对象的属性。

语法1:使用value属性设置一个特定范围中的属性。

    <c:set value=”value” var=”varName” [scope=”{page|request|session|application}”]/>

语法2:使用value属性设置一个特定范围中的属性,并且带有一个body。

     <c:set var=”varName” [scope=”{page|request|session|application}”]>

     body content

     </c:set>

语法3:设置某个特定对象的一个属性。

    <c:set value=”value” target=”target” property=”propertyName”/>

语法4:设置某个特定对象的一个属性,并且标签带有一个body。

    <c:set target=”target” property=”propertyName”>

     Body content

     </c:set>

属性:

value:Object,将要计算的表达式

var:String,用于表示value值的属性

scope:String,var的有效范围

target:String,将要设置属性的对象,它必须是JavaBeans或者java.util.Map对象

property:Object,待设置的Target对象中的属性名字

3、<c:remove>这个标签用于删除某个变量或者属性

语法:

<c:remove var=”varName” [scope=”{page|request|session|application}”]/>

属性:

Scope:String,这个参数的范围。

Var:String,待删除参数的名字

4、<c:catch>捕获由嵌套在它里面的标签抛出的异常。

语法:

    <c:catch [var=”varName”]>

         Nestedactions

     </c:catch>

属性:

var:String,用于标示这个异常的名字

三、条件标签

在JSTL中,条件标签有;

<c:if>

<c:choose>

<c:when>

<c:otherwise>

下面将分别介绍。

1、<c:if>用于进行条件判断,如果它的Test属性为true,那么就计算它的body

语法1:无body的情况。

    <c:if test=”testCondition” var=”varName”[scope={page|request|session|application}]/>

语法2:有bosy的情况。

    <c:if

test=”testCondition”

[var=”varName”]

[scope={page|request|session|application}]>

Body content

</c:if>

属性:

Test:Boolean,表达式的条件

Var:String,test条件表达式计算的值,它的类型为Boolean

Scope:String,var的范围

2、<c:choose>用于条件选择,它和<c:when>以及<c:otherwise>一起使用。

语法:

    <c:choose>

     Body content(<when> and<otherwise> subtags)

     </choose>

注意:它的body内容只能由以下的元素构成:

    空格。

    0个或者多个<when>子标签,<when>必须在<otherwise>标签之前出现。

    0个或者多个<otherwise>子标签。

3、

<c:when>

它代表了<c:choose>的一个条件分支。

语法:

    <c:when test=”testCondition”>

     Body content

     </c:when>

属性:

Test:Boolean,表达式的条件

它的使用有两个限制:

    必须以<c:choose>作为它的父标签。

    必须在<c:othewise>之前出现。

 4、<c:otherwise>它代表了<c:choose>的最后选择。

语法:

    <c:otherwise>

     Conditional block

     </c:otherwise>

它的使用有两个限制

    必须以<c:choose>作为它的父标签。

    必须是<c:choose>的最后分支出现。


四、迭代标签

在JSTL中,迭代标签有:

<c:forEach>

<c:forTokens>

1、<c:forEach>
–标签用于对包含了多个对象的集合进行迭代,重复执行它的标签体,或者重复迭代固定的次数。
在一个包括一系列对象的Collection中迭代计算它的BodyContent,或者重复迭代固定的次数。

语法1:在Collection中迭代。

<c:forEach

[var=”varName”]

items=”collection”

[varStatus=”varStatusName”]

[begin=”begin”]

[end=”end”] [step=”step”]>

Body content

</c:forEach>

语法2:迭代固定的次数。

<c:forEach

[var=”varName”]

[varStatus=”varStatusName”]

begin=”begin”

end=”end”

[step=”step”]>

Body content

</c:forEach>

属性:

var:String,迭代参数的名字。

items:任何支持的类型,将要迭代的items的集合。

varStatus:String,表示迭代的状态,可以访问迭代自身的信息。

begin:Int,如果指定items,那么就从items的index[begin]开始迭代;如果没有指定items,那么就从指定的index开始迭代,相当于for(int i=begin;;)语句。

end:Int,如果指定items,那么就在items的index[end]结束迭代;如果没有指定items,那么就在指定的index结束迭代,相当于for(;i<end;)。

step:Int,迭代的步长。

2、<c:forTokens>标签
–<c:forTokens>标签用来浏览一字符串中所有的成员,其成员是由定义符号(Delimiters)所分隔的。

<c:forTokensitems=“a:b:c:d” delims=“:” var=“token”>

  <c:out value=“${token}” /> <br>

</c:forTokens>

原创粉丝点击