Struts2 s:iterator 指令全面解析:遍历数组、List与Map
5星 · 超过95%的资源 需积分: 5 172 浏览量
更新于2024-09-18
收藏 48KB DOC 举报
"这篇内容主要总结了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应用程序中处理和展示数据。
2011-11-22 上传
2012-08-06 上传
2011-12-05 上传
2014-11-02 上传
2013-01-05 上传
2010-05-27 上传
2019-08-08 上传
点击了解资源详情
神奇的技术宅
- 粉丝: 0
- 资源: 3
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍