情景:
前幾天想用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一樣。