<%@taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c"%>
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。
字符 | 字符实体 |
< | < |
> | > |
& | & |
‘ “ | ' " |
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>
语法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:forTokensitems=“a:b:c:d” delims=“:” var=“token”>
<c:out value=“${token}” /> <br>
</c:forTokens>