当前位置: 代码迷 >> Web前端 >> iterator 迭代标签 在迭代地图的时候的巧妙使用
  详细解决方案

iterator 迭代标签 在迭代地图的时候的巧妙使用

热度:898   发布时间:2012-11-25 11:44:31.0
iterator 迭代标签 在迭代map的时候的巧妙使用

List<Map<String,Object>> maps = new ArrayList<Map<String,Object>>();

?

Map<String,Object> map1 = new HashMap<String,Object>();

Person person1 = new Person();

person1.setPid(1L);
person1.serPname("person1")

map1.put("m1",person1);
-------------------------------------------------------
Map<String,Object> map2 = new HashMap<String,Object>();

Person person2 = new Person();

person2.setPid(2L);
person2.serPname("person2")

map2.put("m2",person2);
------------------------------
maps.add(map1);

maps.add(map2);

// 把List集合放到map栈里边了
ActionContext.getContext().put("maps",maps);


------------------------------
在jsp中迭代出来 List<Map<String,Object>> maps

在迭代map的时候 可以利用这种方式

<s:property value="key"/>
<s:property value="value"/>
-----------------------------------
<s:iterator value="maps">

<!---我这里的Map 代表了List集合中的每一个元素,
当迭代List的时候,把把list中的每一个元素也就是每一个Map依次放到了栈顶
->

?<s:iterator> <!--注意iterator标签莫有value属性的时候 就默认迭代栈顶的元素-->

?<!--还可以使用top关键字,也是默认迭代栈顶的元素-->
???????????? <s:iterator value="top"> <!--当每一个Map被放到栈顶的时候,在迭代Map中的每一个Person-->

?????????????????????????????? <s:property value="key"/>
?????????????????????????????? <s:property value="value.pid"/>
????????????????? <s:property value="value.pname"/> <!--vlaue就是在Map的value位置上就代表了一个Person-->
??????????? </s:iterator>

</s:iterator>

-----------------------------
Map<String,List>

<s:iterator value="map">
???? <s:property value="key">
?
<!--value就代表Map中的value,因为是在Map的value位置上是一个List集合,所以用iterator迭代-->
????? <s:iterator value="value">
????????????????? ?<s:property value="pid">
?????????????????? <s:property value="pname">
?
?????? </s:iterator>??

</s:iterator>

  相关解决方案