• 关于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>
    

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

  • 相关阅读:
    2-反向调试
    1-断点调试
    gdb基础用法
    protobuf学习手册(上)
    1024 科学计数法 (20 分)
    1023 组个最小数 (20 分)
    1018 锤子剪刀布 (20 分)
    1015 德才论 (25 分)
    1020 月饼 (25 分)
    1019 数字黑洞 (20 分)
  • 原文地址:https://www.cnblogs.com/AsherBlog/p/5423826.html
Copyright © 2020-2023  润新知