zoukankan      html  css  js  c++  java
  • Struts 2的iterator标签来遍历一个含有双层List的嵌套

    今天碰到一个很有意思的问题,就是需要用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>  
  • 相关阅读:
    Docker 版本升级
    Docker Swarm 常用命令
    Docker Swarm 介绍 or 工作原理
    Docker OpenvSwitch 应用部署
    Docker OpenvSwitch 介绍 or 工作原理
    Solr配置与简单Demo[转]
    使用solrj操作solr索引库,solr是lucene服务器
    Apache Solr配置
    使用solr搭建你的全文检索
    [转]flume-ng+Kafka+Storm+HDFS 实时系统搭建
  • 原文地址:https://www.cnblogs.com/sxshiblog/p/3521978.html
Copyright © 2011-2022 走看看