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>