您的位置:首页 > 编程语言 > Java开发

Struts2中iterator标签的使用

2010-07-15 13:18 483 查看
描述:

用于遍历集合(java.util.Collection)或枚举值(java.util.Iterator)。

参数:

名称必需默认类型描述
statusString如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈
valueObject/String要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象
idObject/String用来标识元素的id。在UI和表单中为HTML的id属性
例子:

<%
@ page contentType
=
"
text/html;
charset=UTF-8
"

%>

<%
@ page import
=
"
java.util.List
"

%>

<%
@ page import
=
"
java.util.ArrayList
"

%>

<%
@ taglib prefix
=
"
s
"
uri
=
"
/struts-tags
"

%>

<!
DOCTYPE
HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>

<%

List list
=

new

ArrayList();

list.add(
"
Max
"
);

list.add(
"
Scott
"
);

list.add(
"
Jeffry
"
);

list.add(
"
Joe
"
);

list.add(
"
Kelvin
"
);

request.setAttribute(
"
names
"
,
list);

%>

<
html
>

<
head
>

<
title
>
Iterator
</
title
>

</
head
>

<
body
>

<
h3
>
Names:
</
h3
>

<!--

1、此处的空property元素用于获得当前iterator的值

2、status被设成stuts,在iterator的里面就可以通过#stuts取得IteratorStatus的对象。
IteratorStatus类包含当前序号信息,如是否第一个或最后一个,是否为奇数序号。这些信息在我们做格式化的时候,显得非常有用。

-->

<
ol
>

<
s:iterator
value
="#request.names"
status
="stuts"
>

<
s:if
test
="#stuts.odd == true"
>

<
li
>
White
<
s:property
/></
li
>

</
s:if
>

<
s:else
>

<
li
style
="background-color:gray"
><
s:property
/></
li
>

</
s:else
>

</
s:iterator
>

</
ol
>

</
body
>

</
html
>

在struts2中,iterator标签是很好用的,但也要注意一下.举个例子,

如果要在每行中只显示两条记录,这个经常用到的例子来的
了,可以这样用:

<table width="800px"
align="center">

<tr>

<s:iterator value="songs"
status="st">

<td>

<input type="checkbox" name="songIds" id="<s:property
value='id'/>" value="<s:property value='id'/>">
<label for="<s:property
value='id'/>" class="checkboxLabel">

<s:property
value="name"/>

</td>

<s:if test="#st.modulus(2)==0">

<s:if
test="#st.last">

</tr></s:if>

<s:else>

</tr><tr></s:else>

</s:if>

</s:iterator>

</table>

这里无非就是要注意 <s:if
test="#st.modulus(2)==0">

来判断整除2是否为0,(也可以用<s:if
test="#st.getIndex()%2==0)

并且注意如下的使用 #st.last,判断是否到了最后一条记录,并且注意:

iterator
标签有如下方法:

boolean isEven() 当前迭代元素索引是否为偶数;

boolean isOdd()
当前迭代元素索引是否为奇数;

boolean isLast

() 是否为最后一条元素;

boolean isFirst() 是否为第一条元素。

有以上元素,那么判断何时加入tr就非常方便。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: