Struts2标签库笔记之控制标签

if/elseif/else:分支控制

test=用来测试的逻辑表达式,接受1或0的逻辑运算结果,利用"%{}"进行运算

调用方法如下:
<s:set name="month" value="8"/>
<s:if test=%{#month>=2&&#month<=4}>
	Spring
</s:if>
<s:elseif test=%{#month>=5&&#month<=7}>
	Summer
</s:elseif>
<s:elseif test=%{#month>=8&&#month<=10}>
	Fall
</s:elseif>
<s:else>
	Winter
</s:else>

iterator:迭代器

value=被迭代的集合,可以使List、Set、Map或者数组,通常使用OGNL表达式指定。如果没有指定value属性,则使用ValueStack栈顶的集合

id=制定集合中元素的ID,可以利用该属性访问集合中的单个元素

status=指定迭代时IteratorStatus实例,用以判断当前迭代元素的属性,比如迭代元素是否为最后一个以及当前迭代元素的索引值是多少

调用方法如下:

1:迭代简单集合:

<table border=1 width=200>
	<s:iterator value="{'Friskit','20','Java EE','Struts'}" id="misc" status="sta">
		<tr <s:if test="#sta.odd">style="background-color:#eeeeee"</s:if>>
			<td><s:property value="misc"/></td>
		</tr>
	</s:iterator>
</table>

2:迭代Map对象,在迭代Map对象的时候每个key-value键值对被当成一个集合元素。为了分别取出Map中的每项key和value,使用property标签的时候,通过指定value的属性为value和key来实现(不同于迭代集合中使用id标签),代码如下:

<table border=1 width=200>
	<s:iterator value="#{'Friskit':'Boy','JessicaPark':'Girl','Fem':'Boy'}" status="status">
		<tr <s:if test="#status.odd">style="background-color:#eeeeee"</s:if>>
			<td><s:property value="%{#status.index+1}"/></td>
			<td><s:property value="key"/></td>
			<td><s:property value="value"/></td>
		</tr>
	</s:iterator>
</table>

注:若Iterator设置了status标签值,则每次迭代时都会创建一个IteratorStatus对象,IteratorStatus类包含了一下方法(getter属性):
int getCount()		//返回当前迭代元素的数量
int getIndex()		//返回当前迭代元素的索引
boolean isEven()	//返回当前被迭代元素的索引是否为偶数
boolean isFirst()	//返回当前被迭代元素是否为第一个元素
boolean isLast()	//返回当前被迭代元素是否为最后一个元素
boolean isOdd()		//返回当前被迭代元素的索引是否为奇数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值