在Struts标签中对数据的几种遍历
在Struts中我们对有些标签的使用还不是怎么了解。我是不怎么了解的,尤其是在数据的遍历方面,有时候真的不知道那是为什么会那样,它代表的是什么意思。有时真的把人搞得很郁闷。 特此。在这里总结哈,让那些和我一样郁闷的人来清醒哈。 ### 在Struts标签中对数据的几种遍历 #### 概述 在Web开发中,Struts框架作为经典的MVC架构实现之一,在处理业务逻辑、视图展示等方面提供了丰富的功能支持。其中,对于数据的遍历操作是Struts中一个非常重要的特性,尤其在展示动态数据时显得尤为重要。本文将重点介绍Struts中几种常用的数据遍历标签及其用法,包括`<logic:iterate>`标签遍历集合、遍历Map以及遍历Map中的Value集合等场景。 #### 遍历集合 **1. 基本用法** 在Struts中,`<logic:iterate>`标签被用来遍历集合类型的对象。通过设置`id`属性来存储每次迭代的元素,并通过`name`属性指定要遍历的集合对象名称。 **示例代码:** ```jsp <% Vector vector = new Vector(); vector.addElement("Dog"); vector.addElement("Cat"); vector.addElement("Bird"); request.setAttribute("Animals", vector); %> <!-- 遍历Vector中的每个元素 --> <logic:iterate id="element" name="Animals"> <bean:write name="element" /> </logic:iterate> ``` 在这个例子中,首先创建了一个包含三个元素(Dog、Cat、Bird)的Vector集合,并将其保存到请求域中。然后使用`<logic:iterate>`标签遍历这个Vector,`id`属性设为“element”,表示每次迭代都将当前元素存储到名为“element”的变量中;`name`属性设为“Animals”,即要遍历的目标集合名称。 **2. 进阶用法** 除了基本的遍历之外,`<logic:iterate>`还支持更多高级功能,如通过`indexId`属性来获取当前元素的索引位置、`offset`和`length`属性来指定起始索引和遍历长度等。 **示例代码:** ```jsp <logic:iterate id="element" name="Animals" indexId="index" offset="1" length="2"> <!-- 输出当前索引 --> <bean:write name="index" /> <!-- 输出当前元素 --> <bean:write name="element" /> </logic:iterate> ``` 这里通过`indexId`属性设置了一个名为“index”的变量来记录当前元素的索引位置;`offset`属性设置为1表示从第二个元素开始遍历;`length`属性设置为2则表示只遍历两个元素。 #### 遍历Map 当需要遍历Map类型的数据时,Struts同样提供了支持。使用`<logic:iterate>`标签遍历时,可以通过`property`属性来分别访问键(key)和值(value)。 **示例代码:** ```jsp <% HashMap map = new HashMap(); map.put("Jan", "January"); map.put("Feb", "February"); map.put("Mar", "March"); request.setAttribute("months", map); %> <!-- 遍历Map --> <logic:iterate id="element" name="months" indexId="index"> <!-- 输出索引 --> <bean:write name="index" /> <!-- 输出键 --> <bean:write name="element" property="key" /> <!-- 输出值 --> <bean:write name="element" property="value" /> </logic:iterate> ``` 在此示例中,首先创建了一个包含三个键值对的Map,并将其保存到请求域中。然后通过`<logic:iterate>`标签遍历这个Map,通过`property`属性来区分访问键和值。 #### 遍历Map中的Value集合 如果Map中的值也是一个集合,那么可以先遍历Map,再遍历每个键对应的值集合。 **示例代码:** ```jsp <% HashMap hm = new HashMap(); String vegetables[] = { "pepper", "cucumber" }; String fruits[] = { "apple", "orange", "banana" }; String flowers[] = { "rose", "chrysanthemum" }; String trees[] = { "willow" }; hm.put("Vegetables", vegetables); hm.put("Fruits", fruits); hm.put("Flowers", flowers); hm.put("Trees", trees); request.setAttribute("catalog", hm); %> <!-- 遍历Map --> <logic:iterate id="element" indexId="index" name="catalog"> <!-- 输出索引 --> <bean:write name="index" /> <!-- 输出键 --> <bean:write name="element" property="key" /><br> <!-- 再次遍历每个键对应的值集合 --> <logic:iterate id="elementValue" name="element" property="value" length="3" offset="1"> <!-- 输出值 --> <bean:write name="elementValue" /><br> </logic:iterate> </logic:iterate> ``` 这段代码中,首先创建了一个Map,其中每个键对应的值都是一个数组。然后通过外层的`<logic:iterate>`标签遍历整个Map,再通过内层的`<logic:iterate>`标签遍历每个键对应的值集合。 #### 结论 通过上述介绍可以看出,Struts框架提供了强大的标签库支持,使得开发者能够轻松地处理各种复杂的数据结构。正确理解和使用这些标签不仅可以提高开发效率,还能增强应用的可维护性和扩展性。希望本文能帮助初学者更好地掌握Struts中的数据遍历技巧。
在Struts中我们对有些标签的使用还不是怎么了解。我是不怎么了解的,尤其是在数据的遍历方面,有时候真的不知道那是为什么会那样,它代表的是什么意思。有时真的把人搞得很郁闷。
特此。在这里总结哈,让那些和我一样郁闷的人来清醒哈。在Struts中的数据遍历。它有对集合,Map,还有就是在HashMap中的每个元素的Value是集合对象遍历。接下来我们一起看看它是怎么遍历的。
第一种:在Struts标签中对集合的遍历。它比较简单,看它的代码实现。如下:
<%
Vector vector = new Vector();
//这是给Vector中添加数据
vector.addElement("Dog");
vector.addElement("Cat");
vector.addElement("Bird");
//这是把Vector中的数据放到Request范围中
request.setAttribute("Animals",vector);
%>
//它在遍历Vector中的每个元素时,每检索到一个元素,就
//把它命名为"element",并且把存放在 Pag范围中。
<logic:iterate id="element" name="Animals">
//这是它嵌套的标签,用于输出每个元素的内容。
<bean:write name="element"/>
</logic:iterate>
//这里特别要解释三个属性,indexId属性定义了一个代表
//当前遍历的元素的序列号,它存放在 pag 范围中。
//offset属性指定开始遍历元素的起始位置,默认值为
//“0”,Length属性就是要遍历集合中的多少个元素。
<logic:iterate id="element" name="Animals"
indexId="index" offset="1" length="2">
<bean:write name="index"/>
<bean:write name="element"/>
</logic:iterate>
<%
HashMap map = new HashMap();
//给HashMap中以键值的方式添加数据
map.put("Jan","January");
map.put("Feb","February");
map.put("Mar","March");
//这里也是把HashMap中的数据放到Request范围中
request.setAttribute("months",map);
%>
<logic:iterate id="element" name="months"
indexId="index">
//这里输出的是它的系列号,键,值
<bean:write name="index"/>
<bean:write name="element" property="key"/>
<bean:write name="element"property="value"/>
</logic:iterate>
第三种:在Struts标签中对HashMap中的Value值是集合对象的遍历。这里用到了嵌套的<logic:iterate>标签。来看它的代码实现。如下:
<%
HashMap hm = new HashMap();
//这里定义了几个集合对象
String vegetables[] ={"pepper","cucumber"};
String fruits[] = {"apple","orange","banana"};
String flowers[] = {"rose","chrysanthemum"};
String trees[] = {"willow"};
//把上面定义的集合对象放到HashMap中。
hm.put("Vegetables",vegetables);
hm.put("Fruits",fruits);
剩余8页未读,继续阅读
- 粉丝: 2
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助