1. 遍历List<String>
2. 遍历List<List<String>>
3. 遍历UserEntity
4. 遍历List<UserEntity>
例子的详细代码请参考附件1,给出两个4个例子的运行截图(如下图1):
图1:遍历Listd的4个例子运行结果
关键词:Struts标签,iterator迭代器,List<String>,List<List<String>>
1、遍历List<String>
(1)后台TestAction.java 部分代码:
// TODO 给list赋值
if (list==null) {
list=new ArrayList<String>();
list.add("刘备");
list.add("关羽");
list.add("张飞");
list.add("赵云");
}
(2)前台jsp+s标签部分源代码:
<%--List<String>遍历--%>
<table width="242" height="256" border="1" cellpadding="1"
cellspacing="1">
<caption>
List<String>遍历
</caption>
<tr>
<%--
说明:<s:iterator id="别名" value="后台List变量名">
<s:if test="#别名!=null">
--%>
<s:iterator id="li" value="list">
<td>
<s:if test="#li!=null">
<s:property />
</s:if>
</td>
</s:iterator>
</tr>
</table>
<s:iterator value="strs">
<s:property/><br>
</s:iterator>
或者:
<s:iterator value="strs"var="var">
<s:propertyvalue="var"/><br>
</s:iterator>
2、遍历List<List<String>>
(1)后台TestAction.java 部分代码:
// TODO 给listList赋值(二维列表List)
if (listList==null) {
listList=new ArrayList<List<String>>();
List<String> li=new ArrayList<String>();
li.add("姓名");
li.add("势力");
li.add("职务");
listList.add(li);
/*List为引用类型(以地址方式保存一维List对象),
添加不同List到二维列表需再实例化 */
li=new ArrayList<String>();
li.add("刘备");
li.add("蜀");
li.add("老大");
listList.add(li);
li=new ArrayList<String>();
li.add("关羽");
li.add("蜀");
li.add("老2");
listList.add(li);li=new ArrayList<String>();
li.add("张飞");
li.add("蜀");
li.add("老3");
listList.add(li);
li=new ArrayList<String>();
li.add("赵云");
li.add("蜀");
li.add("大将");
listList.add(li);
(2)前台jsp+s标签部分源代码:
<%--List<List<String>>遍历--%>
<table width="242" height="256" border="1" cellpadding="1"
cellspacing="1">
<caption>
List<List<String>>遍历如下:
</caption>
<s:iterator value="#request.listList" status="st">
<tr>
<s:iterator value="#request.listList.get(#st.index)">
<td valign="middle" align="center">
<s:property />
</td>
</s:iterator>
</tr>
</s:iterator>
</table>
3、遍历UserEntity
(1)后台TestAction.java 部分代码:
// TODO 给UserEntity赋值
if (userEntity==null) {
userEntity=new UserEntity("诸葛亮","男",37);
}
(2)前台jsp+s标签部分源代码:
<%
--
UserEntity遍历如下:
--
%>
<
table
width
="242"
height
="256"
border
="1"
cellpadding
="1"
cellspacing
="1"
>
<
caption
>
UserEntity遍历如下:
</
caption
>
<
tr
>
<%
--<
td
><
s:
property
value
=
"
#变量名.属性名
"
/></
td
>--
%>
<
td
>
<
s:property
value
=""
/>
</
td
>
<
td
>
<
s:property
value
="userEntity.sex"
/>
</
td
>
<
td
>
<
s:property
value
="userEntity.age"
/>
</
td
>
</
tr
>
</
table
>
4、遍历List<UserEntity>
(1)后台TestAction.java 部分代码:
// TODO 给List<UserEntity>赋值
if (users==null) {
users=new ArrayList<UserEntity> ();
UserEntity user=new UserEntity("张飞","男",18);
users.add(user);
user=new UserEntity("李斯","男",19);
users.add(user);
user=new UserEntity("王武","男",20);
users.add(user);
user=new UserEntity("小乔","女",21);
users.add(user);
}
View Code
(2)前台jsp+s标签部分源代码:
<%-- List<UserEntity>遍历如下:--%>
<table width="242" height="256" border="1" cellpadding="1"
cellspacing="1">
<caption>
List<UserEntity>遍历如下:
</caption>
<tr>
<th>
姓名
</th>
<th>
性别
</th>
<th>
年龄
</th>
</tr>
<s:iterator id="u" value="users">
<%--
<s:iterator id="別名" value="要遍历的集合">
users:对应后台Action类的List<UserEntity> users;
--%>
<tr>
<%--<td><s:property value="#別名.实体类属性名" /></td>--%>
<td>
<s:property value="#" />
</td>
<td>
<s:property value="#u.sex" />
</td>
<td>
<s:property value="#u.age" />
</td>
</tr>
</s:iterator>
</table>
5、用法比较
(1)比较List<String>和UserEntity
它们遍历显示效果类似,但是细心的朋友会发现,它们主要有以下区别:
区别1:List<String>的遍历需要iterator迭代器如<s:iterator id="别名" value="后台List变量名">,且不需要value属性直接用<s:property />获取列表元素;
区别2:UserEntity刚相反,不需要iterator迭代器,但需要value属性<s:property value="#变量名.属性名" />来获取列表元素。
(2)比较List<List<String>>和List<UserEntity>
它们遍历显示效果也类似,它们也有以下区别:
区别1:List<List<String>>由于列表没有属性需要借助迭代器的属性status="st",
如:
<s:iterator value="#request.listList" status="st">
<tr>
<s:iterator value="#request.listList.get(#st.index)">
<td valign="middle" align="center">
<s:property />
</td>
</s:iterator>
</tr>
</s:iterator>
区别2:List<UserEntity>则简单多,借用迭代器iterator的id、value属性,再用<s:property value="#別名.实体类属性名" />获取
如:
<s:iterator id="u" value="users">
<tr>
<td>
<s:property value="#" />
</td>
<td>
<s:property value="#u.sex" />
</td>
<td>
<s:property value="#u.age" />
</td>
</tr>
</s:iterator>
















