• 关于jsp页面中iterator对于各种List的迭代


    在之前写的一些项目中,在很多时候我们只是在jsp中通过iterator对于list<E>或者是Map<T>中的元素进行简单便利,但是如果是List<List<E>>呢,这就涉及到了iterator的双层迭代,不过在进入这一部分之前呢,我们首先学习一下在简单的list<E>时在jsp中使怎么遍历的,看代码:

    <!--iterator 说明
        * 当前迭代的元素在栈顶
        * 如果value的值为top,则默认迭代栈顶元素
        * 如果value属性不写,则认为是迭代栈顶元素
      -->
      <s:iterator value="#session.list" var="list">
         <td><s:property  value="#list.dname"/></td>
          <td><s:property  value="#list.description"/></td>
          <td><a onclick="delete()">删除</a>
           <td><a onclick="update()">修改</a>
      </s:iterator >
    

     但是如果是list集合中存着list呢,也就是List<List<E>>,这时候就需要用到双层迭代器,看代码:

    <s:iterator >
         <s:iterator >
         <td><s:property  value="#list.dname"/></td>
          <td><s:property  value="#list.description"/></td>//list前面需要加#
          <td><a onclick="delete()">删除</a>
           <td><a onclick="update()">修改</a>
      </s:iterator >
      </s:iterator>
    

     通过上面的双层迭代器可以迭代出存在list集合中的list中的元素,当然还有一种情况就是,llist集合中放map集合,也就是List<Map<E>>,如果是这样的话,如果想迭代出list集合中存的map集合中的元素,就应该这么迭代:

    <s:iteraor  value="#list">
        <s:iterator value="top">
                 <s:property  value="key"/>
                   <s:property  value="value.dname"/>//map不用加#
        </s:iterator>
     </s:iterator>
    

     说到这,我们也把最后一种情况表述一下,那就是map集合中放着list集合,也就是Map<List<E>>,那像这样的存储方式的话就应该像下面这样的方式去迭代:

    <!--map中含有list-->
        <s:iterator value="#map">
           <s:property value="key"/>
            <!--该迭代就是一个list-->
              <s:iterator value="value">
                   <s:property  value="dname"/>
                    <s:property value="description"/>
              </s:iterator>
        </s:iterator>
    

    所以在不同的集合中和不同的集合组合中,要通过不一样的迭代组合才能很好地遍历出所存储的元素,本次分享就到这里。

  • 相关阅读:
    手起刀落-一起来写经典的贪吃蛇游戏
    同步、异步、回调执行顺序之经典闭包setTimeout分析
    起步
    设计模式之单例模式与场景实践
    青春是如此美好,又怎忍平凡度过
    nvm管理不同版本的node和npm
    起步
    基础
    调用wx.request接口时需要注意的几个问题
    微信小程序实现各种特效实例
  • 原文地址:https://www.cnblogs.com/AsherBlog/p/5423826.html
Copyright © 2020-2023  润新知