Struts2 s:iterator 指令全面解析:遍历数组、List与Map

"这篇内容主要总结了Struts2框架中`s:iterator`标签的常见应用场景,包括遍历数组、列表(List)以及映射(Map)。在列表遍历中,区分了两种不同情况,而在映射遍历中则涉及四种不同的处理方式。"
在Struts2中,`s:iterator`标签是用于迭代集合数据的重要标签,它允许我们方便地遍历数组、列表或映射,并在页面上展示其内容。以下是对标题和描述中提到的知识点的详细说明:
一、遍历数组
在Java中,我们可以创建一个数组并将其存储在请求作用域中,然后在JSP页面中使用`s:iterator`进行遍历。以下是一个例子:
```jsp
<%
String[] arr_str = new String[]{"a", "b", "c", "d"};
request.setAttribute("arr_str", arr_str);
%>
<!-- 遍历数组 -->
<s:set name="arr_str" value="#request.arr_str"/>
<s:iterator value="#arr_str" id="itStr">
<s:property value="itStr"/>
</s:iterator>
<br/><hr/>
```
这段代码首先在服务器端创建了一个字符串数组,并将其存入请求对象。然后在JSP页面中,`s:set`标签设置了一个变量`arr_str`,指向请求中的数组。`s:iterator`标签遍历这个数组,每次迭代时,`s:property`标签会输出当前元素的值。
二、遍历一个List,里面存放的是Bean
在实际应用中,我们经常需要遍历包含对象的列表。这里以一个包含`Interest` Bean的列表为例:
```jsp
public class ActionInterest extends ActionSupport {
private ArrayList<Interest> inList;
// getters and setters...
public String execute() throws Exception {
inList = new ArrayList<>();
Interest in1 = new Interest("swim", "swimisgood");
Interest in2 = new Interest("run", "runisgood");
inList.add(in1);
inList.add(in2);
return SUCCESS;
}
// Interest类的定义...
}
<!-- 遍历一个list,里面的内容是一个bean -->
<s:iterator value="inList" id="interest">
<s:property value="#interest.fav"/> - <s:property value="#interest.desc"/><br/>
</s:iterator>
```
在Action类中,我们创建了一个`Interest`类型的列表,并填充了数据。在JSP页面中,`s:iterator`遍历列表,每次迭代时,`s:property`标签可以访问到Bean的属性,如`fav`和`desc`。
三、遍历Map
对于Map,有四种常见的遍历方式:
1. 遍历Map的所有键(keys)
2. 遍历Map的所有值(values)
3. 遍历Map的键值对(entry set)
4. 自定义排序遍历Map
例如,遍历键值对:
```jsp
Map<String, String> myMap = new HashMap<>();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
<!-- 遍历Map的键值对 -->
<s:iterator value="myMap.entrySet()" var="entry">
Key: <s:property value="#entry.key"/>, Value: <s:property value="#entry.value"/><br/>
</s:iterator>
```
这段代码首先创建了一个Map,然后使用`s:iterator`遍历其entry set。在每次迭代中,我们可以访问到键(key)和值(value)。
以上就是关于Struts2框架中`s:iterator`标签的常用情况总结,包括数组、列表和映射的遍历。理解这些用法有助于更好地在Struts2应用程序中处理和展示数据。
534 浏览量
153 浏览量
145 浏览量
2011-12-05 上传
2009-10-21 上传
114 浏览量
119 浏览量
119 浏览量

神奇的技术宅
- 粉丝: 0
最新资源
- 一键修复损坏Office模板文件工具发布
- SQL Server期末复习:数据库管理与商业智能工具
- GP328中文版寫頻程序CPS_R06.10.09詳解
- React Native图表绘制实践:ART应用与第三方框架对比
- 实现自定义电子托盘窗口定位的JavaScript工具
- Java数据处理:行转列的实用示例分析
- jQuery实现动态背景图片效果教程
- HTML网页制作实战教程与资源分享
- 搜狗输入法截图工具体验:QQ风格,快捷操作
- 平台工具r10版更新发布 Android SDK平台工具
- 支付宝批量退款有密接口及服务器回调演示
- Ext中文API手册:全面解析EXT框架指南
- Woku no Pico智能警报:Snowday '17夺冠作品
- 探索HTML在arkhosic.github.io项目中的应用
- 使用jQuery实现点击触发的登录窗口功能
- USBoot v1.7:制作U盘启动盘的简易工具