jstl标签

1. Jstl标签库分为5

Jstl核心标签库,数据库标签库,i18n格式化标签库,xml标签库和jstl函数标签库。

 

2. Jstl核心标签库

jsp页面中要使用到核心标签库,必须使用<%@taglib%>指令,指定核心标签库。代码如下:

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

 

1) <c:set>标签

定义变量的标签,能够将变量存储在jsp范围中或者javabean属性中。其语法格式分为如下5种。

① 指定变量名及变量值,不指定scope

<c:set var="username" value="dinghuan"></c:set>

② value的值储存到范围为scope的变量中

<c:set var="username" value="dinghuan" scope="page|request|session|application"></c:set>

③ 将本体内容的数据储存到范围为scope的变量中

<c:set var="username" scope="page|request|session|application">

本体内容

</c:set>

④ value值储存到target对象的属性中

<c:set value="dinghuan" target="user" property="name"></c:set>

⑤ 将本体内容的数据储存到target对象的属性中

<c:set target="user" property="name">

本体内容

</c:set>

 

2) <c:out>标签

用来显示数据的内容,类似于<%=%>但是功能要更加强大。

① 通过value属性指定需要显示的值

<c:out value="dinghuan"/>

② 通过escapeXml属性设置是否将value中的内容按照原样输出。因为<c:out>默认会将<>'"&转换成<,>,',",&。如果不想转换,只需设定escapeXml属性为"false"

<c:out value="dinghuan" escapeXml="true|false"/>

③ 通过default属性来指定默认值。如果value的值为null时,则显示default的值。

<c:out value="dinghuan" default="linling"/>

④ 通过本体内容来指定默认值。如果value的值为null时,则显示default的值。

<c:out value="dinghuan">

本体内容

</c:out>

 

3) <c:remove>标签

用来移除指定范围的变量。

Var属性指定待删除变量的名称,scope属性是可选的,用来指定删除变量的范围,缺省为page

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

 

4)  <c:if>标签

用来执行流程控制,其功能和java语言中的if完全相同。有两种语法格式。一种没有本体内容,一种有本体内容。

① 没有本体内容的格式如下

<c:if test="testCondition" var="varName" scope="page|request|session|application"/>

其中test属性是必须填写的,表示进行判断的表达式。属性var定义变量,该变量存放判断后的结果。Scope表示var定义变量储存的范围。

② 有本体内容的格式如下

<c:if test="testCondition" var="varName" scope="page|request|session|application">

本体内容

</c:if>

其中test属性是必须填写的,当test中表达式的结果为true时,则会执行本体内容。

 

5) <c:choose><c:when><c:otherwise>标签

<c:if>标签只能判断一个表达式,而且无法指定如果表达式不成立执行语句。Jstl同样提供了类似于if...else...的语句<c:choose>标签。<c:choose>本身只能当有<c:when><c:otherwise>的时候的标签。其中可以有一个或多个<c:when>标签,有零个或多个<c:otherwise>标签。其语法格式如下。

<c:choose>

...

<c:when test="testCondition">

</c:when>

...

<c:other>

</c:other>

</c:choose>

 

6) <c:forEach>标签

一种用来遍历集合对象的成员,一种用来使语句循环执行指定次数。

① 遍历集合对象的成员,语法格式如下。

<c:forEach [var="varname"] items="collection" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>

本体内容

</c:forEach>

其中"var"用来存放现在指到的成员。"items"值迭代的集合对象。"varStatus"用来存放现在指到的相关成员的信息。"begin"表示开始位置(默认为0)"end"表示结束位置。"step"表示步长(默认为1)

② 指定语句执行次数,其语法格式如下。

<c:forEach [var="varname"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>

本体内容

</c:forEach>

注:varStatus属性

current: 当前这次迭代的(集合中的)项
index : 当前这次迭代从 开始的迭代索引
count : 当前这次迭代从 开始的迭代计数
first : 用来表明当前这轮迭代是否为第一次迭代的标志
last : 用来表明当前这轮迭代是否为最后一次迭代的标志
begin : 返回begin属性值
end : 返回end属性值
step : 返回step属性值

例:

<c:foreach items="{personList}" var="person" varStatus="varStatus">  

    <tr bgcolor="${varStatus.index % 2 == 1 ? '#EFEFEF' : 'FFFFFF'}">   

        <td>${varStatus.current.id}</td>  

        <td>${varStatus.current.name}</td>  

        <td>${varStatus.current.age}</td>  

    </tr>  

</c:foreach>

 

7. <c:forTokens>标签

用来根据指定分隔符分割字符串。其语法格式如下。

<c:forEach [var="varname"] items="collection" delims="delimiters" [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>

本体内容

</c:forEach>

其中"var","varStatus","begin","end","step"属性和<c:forEach>标签中用法一样。"items"属性表示被分割的字符串,"delims"属性指定分隔符。

<c:forTokens>不仅可以分割仅有一个分隔符的字符串。也可以通过设定多个分隔符来分割有多个分隔符就可以了。

 

8. <c:import>标签

可以把其他静态或动态的文件包含到本身的jsp页面中。它和jsp动作指令的<jsp:include>最大的差别在于:<jsp:include>只能包含和自己在同一web application下的文件;而<c:import>除了能够包含和自己的同一web application的文件中。也可以包含不同web application或其他网站的文件。

<c:import url="url" [context="context"] 

[var="varName"] [scope="{page|request|session|application}"] [charEncoding="charEncoding"]> 

内容  

</c:import> 

或者

<c:import url="url" [context="context"] 

varReader="varReaderName" [charEncoding="charEncoding"]> 

内容  

</c:import> 

属性 :

属性名 

描述 

类型 

是否接受动态值 

是否支持 EL

是否 

必须 

默认值 

说明 

url

统一资源定位器 

String

true

Y

 

 

待导入资源的URL,可以是相对路径和绝对路径,并且可以导入其他主机资源  

context 

上下文 

String

true

Y

 

 

当使用相对路径访问外部context资源时,context指定了这个资源的名字。 

var  

变量 

String

false

N

 

 

参数的名字。 

scope 

范围 

String

false

N

 

page

var参数的作用范围。 

cahrEncoding

字符编码 

String

true

 

 

输入资源的字符编码。 

varReader

资源 阅读器 

String

false

N

 

 

 这个参数的类型是Reader,用于读取资源。 

 

9. <c:param>标签

用来传递参数,包含两个属性namevalue。语法格式如下。

<c:param name="参数名" value="参数值">

猜你喜欢

转载自endless.iteye.com/blog/1404815