隨筆-29  評論-5  文章-0  trackbacks-0
          來自于:http://www.aygfsteel.com/michaellee/archive/2009/07/14/286733.html
          struts2的s:iterator 可以遍歷 數(shù)據(jù)棧里面的任何數(shù)組,集合等等 以下幾個簡單的demo:
          s:iterator 標簽有3個屬性:
              value:被迭代的集合
              id   :指定集合里面的元素的id
              status 迭代元素的索引

          1:jsp頁面定義元素寫法 數(shù)組或list

             1. 
          <s:iterator value="{'1','2','3','4','5'}" id='number'>
             2.     
          <s:property value='number'/>A
             3. 
          </s:iterator>

          打印結果為:  1A2A3A4A5A
          上面的方法我在jsp文件里執(zhí)行沒有成功;這是另一種寫法:
          <%
                List list 
          = new ArrayList();
                list.add(
          "Max");
                list.add(
          "Michael");
                list.add(
          "Scott");
                list.add(
          "Jeffry");
                list.add(
          "Joe");
                request.setAttribute(
          "names", list);
             
          %>

          <h3>Names:</h3>
            
          <!--
                      1、此處的空property 元素用于獲得當前iterator的值
                      2、status被設成stuts,在 iterator的里面就可以通過#stuts取得 IteratorStatus的對象。IteratorStatus類包含當前序號信息,
                                                  如是否第一個或最后一個,是否為奇數(shù)序號。這些信息在我們做格式化的時候,顯得非常有用。
             
          -->
              
          <ol>
                  
          <s:iterator value="#request.names" status="stuts">
                      
          <s:if test="#stuts.odd == true">
                          
          <li>White <s:property/></li>
                      
          </s:if>
                      
          <s:else>
                          
          <li style="background-color:blue"><s:property/></li>
                      
          </s:else>
                  
          </s:iterator>
              
          </ol>

          2: 索引的用法
          如果指定了status,每次的迭代數(shù)據(jù)都有IteratorStatus的實例,它有以下幾個方法
          int getCount()返回當前迭代了幾個元素
          int getIndex()返回當前元素索引
          boolean isEven()當然的索引是否偶數(shù)
          boolean isFirst()當前是否第一個元素
          boolean isLast()
          boolean isOdd() 當前元素索引是否奇數(shù)

             1. 
          <s:iterator value="{'a','b','c'}" id='char' status='st'>
             2.     
          <s:if test="#st.Even">
             3.         現(xiàn)在的索引是奇數(shù)為:
          <s:property value='#st.index'/>
             4.     
          </s:if>
             5.     當前元素值:
          <s:property value='char'/>
             6. 
          </s:iterator>

          3:遍歷map
          value可以直接定義為:

             1. value="#{"1":"a","2":"b"}"

          每個元素以都好隔開。元素之間的key和value 冒號隔開
          value 也可以是數(shù)據(jù)棧里面的java.util.Map對象
          遍歷寫法如下:

             1. 
          <s:iterator value="map" id="id" status="st">
             2.      key : 
          <s:property value='key'/>
             3.      value:
          <s:property vlaue='value'/>
             4. 
          </s:iterator>

          當然key 和value 都可以使java 的 Object

          3:遍歷數(shù)據(jù)棧.簡單的List類,
          List
          <Attr> 
          class Attr{String attrName;String getAttrName(){return "123";}}

             1. 
          <s:iterator value="label" id="id">
             2.     
          <s:property value="#id.attrName" />
             3. 
          </s:iterator>

          當然 value 還可以寫成 value="%{label}" label 可以有.操作
          label的屬性List 可以寫成value="%{label.list}"  相當于:getLabel().getList();

          4:遍歷2個list;
          List
          <AttrName> attrN {color,size,style}
          List
          <AttrValue> attrV {red,20,gay}
          這2個 list的元素是一一對應的,一個attrN對應一個attrV

             1. 
          <s:iterator value="%{attrN }" id="id"   status="status">
             2.  index    is : 
          <s:property value='status.index'/>
             3.  attrName is : 
          <s:property value='id'/> or <s:property value='%{id}'/> 
             4.  attrName is : 
          <s:property value='%{attrV[#status.index]}'/>
             5. 
          </s:iterator>

          posted on 2010-05-21 23:49 豪情 閱讀(858) 評論(0)  編輯  收藏 所屬分類: Struts 2.0
          主站蜘蛛池模板: 南澳县| 禹州市| 海原县| 黑水县| 连南| 靖远县| 舟山市| 雅安市| 施甸县| 陵水| 乌苏市| 宜良县| 同心县| 视频| 呼和浩特市| 河北区| 武清区| 霍邱县| 恭城| 竹山县| 霸州市| 钦州市| 文成县| 苏尼特右旗| 泰和县| 屏边| 莆田市| 平遥县| 会东县| 甘孜| 峡江县| 阿鲁科尔沁旗| 昂仁县| 山西省| 平原县| 泸定县| 盈江县| 东丽区| 外汇| 亚东县| 灵璧县|