今天碰到一个很有意思的问题,就是需要用Struts 2的iterator标签来遍历一个含有双层List的嵌套。

首先我们从最基础的说起,用iterator标签遍历一个List。

如果Action中有一个这样的不为null的属性:

private List<T> list;  

那么在JSP中,就可以这样来遍历list:

<s:iterator value="list">       <s:property value="propertyNameOfObjectInList"></s:property>  </s:iterator>  

其中的propertyNameOfObjectInList是指list中对象的属性名。

下面我们再来看稍微复杂一点的情况,那就是嵌套使用iterator标签。

假设我们的Action中有如下属性:

private List<T> list1;  private List<T> list2;  

那么,我们可以在JSP页面上这样来遍历。

<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中有如下属性:

private List<List<T>> list;  

那么,我们在JSP必须这样来遍历:

<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中:

private List<T> list1;  private List<List<T>> list2;  

所以当然就要这样遍历啦:

<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>  

Struts 2的iterator标签来遍历一个含有双层List的嵌套的更多相关文章

  1. 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

    最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...

  2. Struts(18)标签

    控件标签 Struts 2 的标签有一组标签.更easy控制流程页面运行.下面是重要的Struts2控制标签列表: if /else 标签: 这些标签运行可在每一种语言找到的一种基本条件流程. 'If ...

  3. Struts(22)标签库具体解释

    要使用Struts2的标签,仅仅须要在JSP页面加入例如以下一行定义就可以: <%@ taglib prefix="s" uri="/struts-tags&quo ...

  4. struts2的s:iterator 标签 详解

    s:iterator 标签有3个属性:value:被迭代的集合id   :指定集合里面的元素的idstatus 迭代元素的索引1:jsp页面定义元素写法 数组或list <s:iterator ...

  5. s:iterator标签的使用

    1.在说明s:iterator标签的使用前,先了解下struts2中的Value Stack. 这里参考了webwork中对Value Stack的描述,由于struts2是在webwork的基础上进 ...

  6. Struts 1 之<logic>标签库

    1. logic:empty logic:empty标签是用来判断是否为空的.如果为空,该标签体中嵌入的内容就会被处理.该标签用于以下情况: 当Java对象为null时 当String对象为" ...

  7. struts2的s:iterator 标签 详解<转>

    struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo: s:iterator 标签有3个属性:     value:被迭代的集合     id   : ...

  8. struts2中s:iterator 标签的使用详解 及 OGNL用法

    简单的demo: s:iterator 标签有3个属性:value:被迭代的集合id   :指定集合里面的元素的idstatus 迭代元素的索引 1:jsp页面定义元素写法 数组或list <s ...

  9. Iterator遍历器 调用Symbol.Iterator属性,遍历器对象。

    Iterator实现原理 创建一个指针对象,指向当前数据结构的起始位置.也就是说,遍历器对象本质上,就是一个指针对象. 第一次调用指针对象的next方法,可以将指针指向数据结构的第一个成员. 第二次调 ...

随机推荐

  1. -bash: ulimit: max user processes: cannot modify limit: Operation not permitted

    安装oracle时候在创建oracle用户后,切换oracle用户时,报如下错 [root@localhost ~]# su - oracle-bash: ulimit: max user proce ...

  2. Oracle 存储过程之通用分页查询

    在数据库中书写通用分页存储过程,有利于代码的维护以及执行效率的提升 create or replace procedure Sp_QueryDatePage ( tableName in varcha ...

  3. Erp第一章:初感

    Erp第一章:初感1.核心标志实现:内部集成.外部集成.内部集成包括实现产品研发.核心业务.数据采集:外部集成就是企业与供需链上的所有合作伙伴的共享信息集成.2.Erp难点在于打破传统企业四面墙,把流 ...

  4. 关于offsetTop offsetHeight clientHeight scrollHeight scrollTop的区别研究

    我是以chrome浏览器做的研究. 先看一段代码: <script> window.addEventListener('DOMContentLoaded',function(){ var ...

  5. 理解js异步的概念

    js引擎在执行的时候是单线程的,这是大家都知道的.我们先来看一段代码: <html> <head> <meta http-equiv="Content-Type ...

  6. asp.net 获取IP地理位置的几个主要接口

    腾讯的IP地址API接口地址:http://fw.qq.com/ipaddress 新浪的IP地址查询接口:http://int.dpool.sina.com.cn/iplookup/iplookup ...

  7. 【JS】导出table到excel,同时兼容FF和IE

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. HTML1网页三部份内容

    网页三部份内容:HTML CSS Javascript 路径:一般做网页的时候用的相对路径. images/aaa.jpg 网页同一个目录中找images文件夹,再在images里面找aaa.jpg ...

  9. Poem: Reserverd Words

    Let this long package float, Goto private class if short. While protected with debugger case, Contin ...

  10. java中遍历map对象的多种方法

    在Java中如何遍历Map对象   How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有ma ...