Struts2 s:iterator 指令全面解析:遍历数组、List与Map
5星 · 超过95%的资源 需积分: 5 200 浏览量
更新于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 上传
2009-10-21 上传
2008-09-12 上传
2014-11-02 上传
2019-08-08 上传
点击了解资源详情
神奇的技术宅
- 粉丝: 0
- 资源: 3
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析