SpringMVC学习之JSTL条件行为和遍历行为

JSTL的条件行为标签有四个:if ,choose ,when , otherwise标签

1.if标签

是对某一个条件进行测试,结果为true就执行它的body content.测试结果保存在Boolean对象中,并创建有届变量来保存这个Boolean对象. 利用var和scope属性分别定义有界变量的名称和范围.两种形式:

1) 没有body content

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

此情况的var 一般是通过其他标签在同一个JSP的后续阶段再进行测试

2) <c:if test="conditin" [var="varName"] [scope="page|request|session|application"] >

body content

</c:if>

if标签的属性
属性类型描述
test+布尔决定处理任何现有bodycontent的测试条件
var字符串引用测试条件值的有界变量名称;var的类型为Boolean
scope字符串var定义的有界变量的范围
PS:模拟else的情况可一使用两次if,一次正常,一次相反

2.choose when 和otherwise标签

choose,when和Java中的switch,case类似

choose标签中必须嵌有一个或者多个when标签,每个when标签都表示一种可以计算和处理的情况,otherwise标签则用于默认的条件块,假如没有任何一个when标签的处理结果为true,则otherwise将被处理,otherwise必须放在最后一个when之后.

choose和otherwise标签没有属性,when标签必须带有定义测试条件的test属性,用来决定是否处理bodycontent.

3.遍历行为forEach

forEach 会无数次的反复遍历body content 或者对象的集合,可以被遍历的对象包括java.util.Collection,java.util.Map的全部实现,以及对象数组或者主类型,有两种形式:

1) 固定的次数重复body content

<c:forEach [var="varName"] begin="begin" end="end" step="step" >

body content

</c:forEach>

2) 用于遍历对象集合

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

body content

</c:forEach>

forEach标签的属性
属性
类型
描述
var
字符串
引用遍历当前项目的有界变量名称
items+
支持的任意类型
遍历的对象的集合
varStatus
字符串
保存遍历状态的有界变量的名称,类型值是javax.servlet.jsp.jstl.core.LoopTagStatus,带有count属性,返回当前的次数
begin+
整数
如果指定items,遍历将从指定的索引处的项目开始,如果没有指定items,遍历将从设定的索引值开始,如果指定begin必须大于等于0
end+
整数
如果指定items,遍历将从指定的索引处的项目结束,如果没有指定items,遍历将从设定的索引值结束
step+
整数
遍历将只处理间隔指定step的项目,从一个项目开始,在这种情况下,step的值必须大于等于1
PS:var创建的有界变量的名称只在该forEach中使用,一到</c:forEach>处就会被删除.

3.2forTokens标签

forTokens标签用来遍历以特定的分隔符隔开的令牌,用delims指定的分隔符,将元素分开

语法如下:

<c:forTokens items ="stringOfTokens" delims="delimiters" [var="varName" ] [varStatus="varStatusname"]  [begin="begin"] [end="end" ] [step="step"]>

body content

</c:forTokens>


forTokens的属性

forTokens标签的属性
属性
类型
描述
var
字符串
引用遍历当前项目的有界变量名称
items+
支持的任意类型
遍历的对象的集合
varStatus
字符串
保存遍历状态的有界变量的名称,类型值是javax.servlet.jsp.jstl.core.LoopTagStatus,带有count属性,返回当前的次数
begin+
整数
如果指定items,遍历将从指定的索引处的项目开始,如果没有指定items,遍历将从设定的索引值开始,如果指定begin必须大于等于0
end+
整数
如果指定items,遍历将从指定的索引处的项目结束,如果没有指定items,遍历将从设定的索引值结束
step+
整数
遍历将只处理间隔指定step的token,从一个token开始,在这种情况下,step的值必须大于等于1
delims+
字符串
一组分隔符

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值