1. 程式人生 > >struts2之iterator標籤之雙重迴圈

struts2之iterator標籤之雙重迴圈

1 struts標籤中有一個迴圈的標籤,iterator標籤。iterator雙重迴圈也可以使用。iterator中的var屬性表示集合中的元素單元。
如:<s:iterator value="#request.bean.doubleList" var="list1" ><!-- id和var都表示集合中的元素單元,可以互用 -->
  <tr>
  <s:iterator value="#list1" var="list2">
  <td>
  <s:property value="#list2"/>
  </td>
  </s:iterator>
  </tr>
  </s:iterator>


說明:iterator標籤的value屬性表示集合值。
      var表示集合中的元素單元,可以理解為在迴圈體中定義了一個變數。在迴圈時將集合元素中的每個單元元素賦值給這個變數。外圍的元素單元可以作為第二重迴圈的value屬性值(第二重迴圈的集合)


2 作為iterator的雙重迴圈的value的屬性值。在java後臺中可以用雙重list來設定。
如:
bean的屬性:
private List<List<String>> doubleList;


action中:
private Example bean;
List<String> list1=new ArrayList<String>();
list1.add("1-1");
list1.add("1-2");
list1.add("1-3");
list1.add("1-4");

List<String> list2=new ArrayList<String>();
list2.add("2-1");
list2.add("2-2");
list2.add("2-3");
list2.add("2-4");

List<String> list3=new ArrayList<String>();
list3.add("3-1");
list3.add("3-2");
list3.add("3-3");
list3.add("3-4");

List<List<String>> doubleList_=new ArrayList<List<String>>();
doubleList_.add(list1);
doubleList_.add(list2);
doubleList_.add(list3);

bean.setDoubleList(doubleList_);




前臺jsp:
<s:iterator value="#request.bean.doubleList" var="list1" ><!-- id和var都表示集合中的元素單元,可以互用 -->
  <tr>
  <s:iterator value="#list1" var="list2">
  <td>
  <s:property value="#list2"/>
  </td>
  </s:iterator>
  </tr>
  </s:iterator>


3 輸出可以用struts2的property標籤。如:<s:property value="#list2"/> #表示struts2中的OGNL表示式。


總結:strtus2的iterator標籤不但可用於迴圈,還可用於雙重迴圈。
iterator標籤的value屬性是集合值。
iterator標籤的var屬性是集合中的單元元素。可以理解為在迴圈體中定義了一個變數。在迴圈時將集合元素中的每個單元元素賦值給這個變數。外圍的iterator標籤的var值可以作為第二重iterator標籤的value值。


簡單記憶:迴圈需要迴圈體中定義變數