天天看點

s:iterator輸出key為一個對象,value為一個List集合的Map

情景:

前幾天想用struts2的标簽來疊代一些資料, 但一般都會用list來疊代, 這個很容易, 而且官方文檔也有詳細的例子。

map<topic, list<item>>

我要疊代這個map, 在頁面上顯示。

public class topic{  

   private long id;  

   private string title;  

   //setter、getter方法省略  

}  

public class item{  

     private long id;  

     private string content;  

     private topic topic;  

     //setter、getter方法省略  

<s:iterator value="map" id="column">  

     <s:property value="#column.key.title">  

     <s:iterator value="#column.value">  

            <s:property value="content">  

      </s:iterator>  

</s:iterator>  

但是上面這樣的代碼能夠疊代出資料, 但是個人認為一般疊代map也許不是很好的辦法。

因為map是不能夠保證每次的排序都是有順序的, 是以一般還是考慮用list代替map。

将上面的topic類添加一個屬性:

     private string title;  

     private list<item> items;  

這樣就可以                   list<topic>

<s:iterator value="list">  

     <s:property value="title">  

     <s:iterator value="items">  

這樣使用的好處就是可以控制元素出現的順序,不會像map一樣。