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">
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>
注:遍历List<List<String>>运行结果参考上图1(右上)
3、遍历UserEntity
(1)后台TestAction.java 部分代码:
// TODO 给UserEntity赋值 if (userEntity==null) { userEntity=new UserEntity("诸葛亮","男",37); }
(2)前台jsp+s标签部分源代码:
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); }
(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="#u.name" /> </td> <td> <s:property value="#u.sex" /> </td> <td> <s:property value="#u.age" /> </td> </tr> </s:iterator> </table>
注:遍历List<UserEntity>运行结果参考上图1(右下)
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="#u.name" /> </td> <td> <s:property value="#u.sex" /> </td> <td> <s:property value="#u.age" /> </td> </tr> </s:iterator>
相关推荐
这里的写法存在一些问题,因为第二层迭代器的`value`属性应该是指向第一层迭代器中的当前元素,而不是另一个名为`ist`的列表。正确的写法应该如下: ```xml <s:iterator value="#request.list" status="sta"> <s:...
### Iterator遍历循环代码知识点详解 #### 一、概述 在Java编程语言中,集合框架是处理一组数据的重要工具之一。对于集合中的元素进行遍历是常见操作,而`Iterator`接口则是Java中最常用的一种遍历集合的方式。...
根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...
对于集合类型,我们通常会在JSP中通过迭代器遍历并生成多个表单元素,每个元素对应集合中的一个元素。例如,对于`List`或`Set`,可以使用以下方式创建输入框: ```jsp <s:iterator value="list"> ...
Struts2作为一款流行的MVC框架,其OGNL(Object-Graph Navigation Language)表达式语言提供了一种灵活的方式来访问和操作对象,包括使用迭代器来遍历数据。 1. **Struts2中的`s:iterator`标签** Struts2的`s:...
- `s:iterator`:遍历集合数据,如List、Map等,用于循环渲染数据。 - `s:if` 和 `s:else`:条件判断标签,类似于Java中的if...else语句。 - `s:foreach`:遍历数组或集合,类似Java的for-each循环。 4. **...
4. <s:iterator></s:iterator>-----用于遍历集合 L: 1. <s:label></s:label>-----只读的标签 M: 1. <s:merge></s:merge>-----合并遍历集合出来的值 O: 1. <s:optgroup></s:optgroup>-----获取...
本篇文章主要关注Struts2中的常用标签,这些标签大大简化了Web开发中的一些常见任务。 首先,我们要明白Struts2标签库与Struts1.x的不同之处。在Struts1.x中,标签库按照功能划分为HTML、Tiles、Logic和Bean等几个...
7. `<s:iterator>`:遍历集合,如List或Map,常用于显示表格或列表数据。 8. `<s:property>`:显示Action类属性的值,用于在页面上展示后台数据。 9. `<s:if>` 和 `<s:else>`:条件判断标签,可以根据特定条件控制...
例如,如果有一个用户列表需要逐一插入数据库,可以先将所有用户数据放入List,然后在Action中通过Iterator遍历并调用Hibernate的save()方法。 项目的具体实现可能包括以下步骤: 1. 创建Struts2 Action类,定义...
1. **s:iterator**:这是Struts2中的迭代器标签,用来遍历集合对象,如ArrayList、Map等。它常用于显示数据库查询结果或者处理数组。例如,你可以将一个用户列表传递到JSP页面,然后用`s:iterator`标签来循环遍历并...
`status`属性提供了迭代器的状态信息。 ##### 6. URL地址标签 - `<s:url>`标签 `<s:url>`标签用于生成动态URL地址,并可以添加请求参数,例如: ```html ``` 这里`action`属性指定了请求的目标Action,而`s:...
#### 一、Struts2标记库中迭代标签iterator的()方法是判断当前元素是否是第偶数个元素。 **答案解析:** - 正确答案为 **D.isEven**。 - Struts2中的`<s:iterator>`标签用于迭代集合中的元素。在迭代过程中,可以...
举个例子,假设我们有一个名为`users`的List集合,里面包含User对象,我们可以用`Iterator`标签来遍历并显示用户信息: ```xml <s:iterator value="users" status="userStatus"> <td><s:property value=...