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>

你可能感兴趣的:(jsp)