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

所以在不同的集合中和不同的集合組合中,要通過不一樣的迭代組合才能很好地遍歷出所存儲的元素,本次分享就到這里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM