您的位置:首页 > 其它

action包装好Map传到页面用iterator解析

2012-08-01 16:37 169 查看
今天遇到一个问题,就是action提取出微博List,然后再根据微博List里的id去提取出对应的回复;

以前的做法是把这两个List都传到页面上,然后再页面上循环把属于该微博的回复加载到该微博下。

后来发现这种做法很浪费时间,因为有很多多余的循环。

现在的做法是把微博和属于该微博的回复放到一个Map里面,页面直接解析Map里的数据就可以了。

private Map<CyTopic, List<CyTopicReply>> topicWithReply = new HashMap<CyTopic, List<CyTopicReply>>();

for ( int i = 0; i < topicList.size(); i++ )

        {

            topicWithReply.put(topicList.get(i), trService.loadTopicReplyById(topicList.get(i).getId()));

        }

页面上用下面方法循环出来就可以了:

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

<s:property value="#column"/><br>  

   key: <s:property value="key"/><br>  

   ------:${key.content }

   value:<s:property value="value"/><br>  

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

   <s:property value="id"/></br>

   <s:property value="content"/></br>

   ${replyerName }

   

 </s:iterator>

--------------------------------------------------------------------

在运行中发现了一个问题,就是hashMap是无顺序的,但是在前端显示时需要微博是有顺序的,所以改用LinkedHashMap就会解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iterator action list