http://www.psjay.com/java-ee-struts-2-iterator-tag.html
Struts 2 <s:iterator>标签嵌套以及遍历双层List
今天碰到一个很有意思的问题,就是需要用Struts 2的iterator标签来遍历一个含有双层List的嵌套。
首先我们从最基础的说起,用iterator标签遍历一个List。
如果Action中有一个这样的不为null的属性:
1
private List<T> list;
那么在JSP中,就可以这样来遍历list:
1
2
3
<s:iterator value="list">
<s:property value="propertyNameOfObjectInList"></s:property>
</s:iterator>
其中的propertyNameOfObjectInList是指list中对象的属性名。
下面我们再来看稍微复杂一点的情况,那就是嵌套使用iterator标签。
假设我们的Action中有如下属性:
1
2
private List<T> list1;
private List<T> list2;
那么,我们可以在JSP页面上这样来遍历。
1
2
3
4
5
6
<s:iterator value="list1">
<s:property value="propertyNameOfObjectInList"></s:property>
<s:iterator value="list2" id="inner">
<s:property value="#inner.propertyNameOfObjectInList"></s:property>
</s:iterator>
</s:iterator>
请注意,我们必须给里层的iterator标签加上一个id属性,这样,才能通过#id.propertyNameOfObjectInList来取得我们需要的值。
下面是遍历双层List的情况。
假设Action中有如下属性:
1
private List<List<T>> list;
那么,我们在JSP必须这样来遍历:
1
2
3
4
5
<s:iterator value="list">
<s:iterator value="top" id="inner">
<s:property value="#inner.propertyNameOfObjectInList"></s:property>
</s:iterator>
</s:iterator>
这种情况下,必须把内层的iterator标签的value属性设定为”top”!这个top就代表栈顶。然后再指定id属性,并用”#”作为前缀来取值。
我今天碰到的情况是这样,在Action中:
1
2
private List<T> list1;
private List<List<T>> list2;
所以当然就要这样遍历啦:
1
2
3
4
5
6
7
8
<s:iterator value="list1">
<s:property value="propertyNameOfObjectInList"></s:property>
<s:iterator value="list2">
<s:iterator value="top" id="inner">
<s:property value="#inner.propertyNameOfObjectInList"></s:property>
</s:iterator>
</s:iterator>
</s:iterator>
分享到:
相关推荐
这里使用了 `<s:iterator>` 标签来遍历一个列表 `list`。对于列表中的每一个元素 `item`,如果 `item.attrValueId` 不为 `0`,则会显示相应的 `AttrValue`、`CountAll` 和 `CountRequest` 的值;否则只显示 `...
本文将深入探讨如何在JSP中将`List`, `Set`, `Map`等集合类型的数据传递到Action,然后再通过`<s:iterator>`标签进行遍历显示。这种方式对于数据的展示和交互具有重要的实践意义。 首先,我们需要了解Struts2的工作...
首先,我们来看如何使用`iterator`标签遍历Map。在Java中,Map是一种键值对的数据结构,`iterator`标签可以通过`key`和`value`属性分别获取键和值。例如: ```jsp <%@ taglib prefix="s" uri="/struts-tags" %> ......
<s:iterator value="list" id="book" status="u"> <tr> <td> <s:property value="id" /> </td> <td> <s:property value="name" /> </td> <td> ...
在action里面写了方法获取一个list,再将这个list的值放到jsp页面中显示出来,用的是<s:iterator>标签。
在Struts2框架中,`<sx:>`标签是Struts2 XWork库的一部分,用于增强JSP页面的功能,提供更强大的数据绑定和表单处理能力。本篇将重点讲解如何利用`sx:`标签实现组合查询和带分页功能。 首先,让我们了解下Struts2的...
在Struts2框架中,`<s:iterator>`标签被广泛用于遍历集合或数组等数据结构。本文将深入探讨如何使用Struts2中的`<s:iterator>`标签来遍历二维数组,并通过实例代码来具体说明其用法。 ### Struts2 Iterator标签 ##...
`s:iterator`标签是Struts 2 提供的一个迭代标签,它允许开发者遍历任何可迭代的对象,如数组、集合或Map。在描述中提到的场景,这个标签用于遍历一个数据集,然后为每个元素创建一个`<s:checkbox>`标签。 `s:...
在Struts2框架中,`<s:if>`标签被广泛应用于页面上根据不同的条件显示或隐藏某些元素。它的工作原理是基于表达式的结果来决定是否渲染其内部的HTML代码。当涉及到对String类型的对象属性值与单个字符进行比较时,...
在Struts2框架中,`<s:iterator>`标签是一个非常强大的工具,用于在JSP页面上循环遍历集合数据,如列表(List)、数组、Map等。它允许开发者以一种动态且灵活的方式展示来自后端的数据,从而极大地提高了开发效率和...
1. <s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用 H: 1. <s:head/>-----在<head></head>里使用,表示头文件结束 2. <s:hidden></s:hidden>-----隐藏值 I: 1. <s:...
在Struts2框架中,`<s:iterator>`标签是一个非常强大的工具,用于遍历集合或数组中的元素,尤其在处理列表数据时极为有用。通过本文档提供的代码示例,我们将深入探讨`<s:iterator>`标签的使用方法及其与不同数据...
- `<s:iterator>` 标签用于遍历集合数据。 - 示例: ```xml <s:iterator value="linkList" status="bean"> <tr> <td class="data_tab_tdcl"> <s:property value="#bean.Index+1"/> </td> <td class="data_...
以上只是Struts2标签库的一部分,实际使用中还有更多标签如`<s:textfield>`(文本输入框)、`<s:textarea>`(文本区域)、`<s:submit>`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...
在 Struts2 框架中,`s:iterator` 是一个非常重要的标签,它主要用于遍历集合数据(如数组、列表、映射表等),并且在 JSP 页面上显示这些数据。下面将根据提供的示例代码对 `s:iterator` 在不同场景下的使用进行...
* <s:generator>:和 <s:iterator> 标签一起使用 H: * <s:head>:在 <head></head> 里使用,表示头文件结束 * <s:hidden>:隐藏值 I: * <s:i18n>:加载资源包到值堆栈 * <s:include>:包含一个输出,servlet ...
13. `<s:if>`, `<s:elseif>`, `<s:else>`:条件判断标签,如`<s:if test="%{condition1}">...<s:elseif test="%{condition2}">...<s:else>...</s:else></s:elseif></s:if>`,可以用来根据表达式的真假执行不同的代码...
- **`<s:iterator>`**:此标签用于遍历集合或数组中的元素,并支持访问当前元素以及当前索引等信息。 - **`<s:set>`**:此标签用于设置变量,可以在迭代过程中累积计算结果。 #### 示例代码解析 根据提供的部分...
- **`<s:iterator>`**:用于遍历集合中的元素,类似于Struts1中的`<logic:iterate>`,但Struts2的实现更为高效,并且支持更复杂的操作,如排序、过滤等。 #### 结论 Struts2标签库相比于Struts1提供了更多的功能和...
1. `<s:generator>`:配合`s:iterator`标签生成序列化的数据。 H部分: 1. `<s:head>`:在HTML的`<head>`标签中使用,表示头部信息结束。 2. `<s:hidden>`:创建隐藏字段,用于存储不显示在页面上的数据。 I部分:...