更新时间:2022-08-28 10:48:11
情景:
前几天想用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类添加一个属性:
public class Topic{ private Long id; private String title; private List<Item> items; //setter、getter方法省略 }
这样就可以 List<Topic>
<s:iterator value="list"> <s:property value="title"> <s:iterator value="items"> <s:property value="content"> </s:iterator> </s:iterator>
这样使用的好处就是可以控制元素出现的顺序,不会像map一样。