欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

s:iterator输出key为一个对象,value为一个List集合的Map

发布时间:2024/9/27 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 s:iterator输出key为一个对象,value为一个List集合的Map 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

情景:

前几天想用struts2的标签来迭代一些数据, 但一般都会用List来迭代, 这个很容易, 而且官方文档也有详细的例子。

Map<Topic, List<Item>>

我要迭代这个map, 在页面上显示。

[java] view plaincopyprint?
  • 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方法省略  
  • }  
  • 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方法省略 } [html] view plaincopyprint?
  • <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>  
  • <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类添加一个属性:

    [java] view plaincopyprint?
  • public class Topic{  
  •      private Long id;  
  •      private String title;  
  •      private List<Item> items;  
  •      //setter、getter方法省略  
  • }  
  • public class Topic{private Long id;private String title;private List<Item> items;//setter、getter方法省略 }

    这样就可以                   List<Topic>

    [html] view plaincopyprint?
  • <s:iterator value="list">  
  •      <s:property value="title">  
  •      <s:iterator value="items">  
  •             <s:property value="content">  
  •       </s:iterator>  
  • </s:iterator>  
  • <s:iterator value="list"><s:property value="title"><s:iterator value="items"><s:property value="content"></s:iterator> </s:iterator>

    这样使用的好处就是可以控制元素出现的顺序,不会像map一样。

    总结

    以上是生活随笔为你收集整理的s:iterator输出key为一个对象,value为一个List集合的Map的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。