日期:2014-05-17  浏览次数:20667 次

s:iterator 迭代 按动态名取List<Map<String,object>>
有一个listMap需要页面迭代
List<Map<String,object>> listMap = new ArrayList<Map<String,Object>> ();

每次迭代的map如下
Map<String,Object> map =new HashMap<String,Object>(); 
 map.put("column1", "value1");map.put("column3", "value3");map.put("column2", "value2");...

要求按column的序号输出 
若map只存3个 页面可写如下
HTML code

<s:iterator value="listMap" status="infoList" id="listMapid">
    <tr>
        <td ><s:property value="column1"/></td>
        <td ><s:property value="column2"/></td>
        <td ><s:property value="column3"/></td>
    </tr>
</s:iterator>



若map的数量不固定 如何按顺序取


------解决方案--------------------
页面上可以用<s:if test=""/> 处理逻辑的
------解决方案--------------------
若map的数量不固定

可以将map里的数据取出,放在list中,然后在页面遍历这个list,就不需要按key取值了
------解决方案--------------------
<td ><s:property value="listMapid.key"/></td>肯定是可以的。。。
------解决方案--------------------
探讨

<td ><s:property value="listMapid.key"/></td>肯定是可以的。。。

------解决方案--------------------
3L的很想试试..
我认为还是用那个<s:if/>标签进行页面的逻辑处理,我在做页面的分页的时候经常用这个
------解决方案--------------------
HTML code

<c:forEach var="bm" items="${data}">
   <c:forEach var="b" items="${bm.map}">
          ${b.key}
          ${b.value}
    </c:forEach>
</c:forEach>