struts2<s:iterator>遍历map

1.假使现在有这样一个Action:

 

Java代码 
  1. import java.util.ArrayList;     
  2. import java.util.HashMap;     
  3. import java.util.List;     
  4. import java.util.Map;    
  5.   
  6. import com.opensymphony.xwork2.ActionSupport   
  7. import com.model.Student   
  8. public class MapAction extends ActionSupport     
  9. {     
  10.     
  11.     private Map<String,String> map;     
  12.         
  13.     private Map<String,Student> studentMap;     
  14.          
  15.     private Map<String,String[]> arrayMap;     
  16.          
  17.     private Map<String,List<Student>> listMap;     
  18.          
  19.   
  20.     public String testMap()     
  21.    {     
  22.        map=new HashMap<String,String>();     
  23.         map.put("1", "one");     
  24.         map.put("2", "two");     
  25.              
  26.         studentMap=new HashMap<String,Student>();     
  27.         studentMap.put("student1"new Student(new Long(1),"20034140201""张三1""男"25));     
  28.         studentMap.put("student2"new Student(new Long(2),"20034140202""张三2""女"26));     
  29.         studentMap.put("student3"new Student(new Long(3),"20034140202""张三3""男"27));     
  30.             
  31.         arrayMap=new HashMap<String,String[]>();     
  32.         arrayMap.put("arr1", new String[]{"1""2003401""leejie""male""20"});     
  33.         arrayMap.put("arr2", new String[]{"2""2003402""huanglie""male""25"});     
  34.         arrayMap.put("arr3", new String[]{"3""2003403""lixiaoning""male""21"});     
  35.              
  36.          
  37.         listMap=new HashMap<String,List<Student>>();     
  38.              
  39.         List<Student> list1=new ArrayList<Student>();     
  40.        list1.add(new Student(new Long(1),"20034140201""张三1""男"25));     
  41.         list1.add(new Student(new Long(2),"20034140202""张三2""男"25));     
  42.         list1.add(new Student(new Long(3),"20034140203""张三3""男"25));     
  43.         listMap.put("class1", list1);     
  44.              
  45.         List<Student> list2=new ArrayList<Student>();     
  46.         list2.add(new Student(new Long(1),"20034140301""李四1""男"20));     
  47.         list2.add(new Student(new Long(2),"20034140302""李四2""男"21));     
  48.         list2.add(new Student(new Long(3),"20034140303""李四3""男"22));     
  49.         list2.add(new Student(new Long(4),"20034140304""李四4""男"23));     
  50.         listMap.put("class2", list2);     
  51.              
  52.             
  53.             
  54.              
  55.         return SUCCESS;     
  56.              
  57.     }     
  58.          
  59.     public Map<String, String> getMap() {     
  60.        return map;     
  61.     }     
  62.     
  63.    public void setMap(Map<String, String> map) {     
  64.         this.map = map;     
  65.     }     
  66.          
  67.     public Map<String, Student> getStudentMap() {     
  68.         return studentMap;     
  69.     }     
  70.   
  71.     public void setStudentMap(Map<String, Student> studentMap) {     
  72.         this.studentMap = studentMap;     
  73.     }     
  74.   
  75.     public Map<String, String[]> getArrayMap() {     
  76.        return arrayMap;     
  77.    }     
  78.     
  79.     
  80.     public void setArrayMap(Map<String, String[]> arrayMap) {     
  81.         this.arrayMap = arrayMap;     
  82.     }     
  83.     
  84.     
  85.     public Map<String, List<Student>> getListMap() {     
  86.         return listMap;     
  87.     }     
  88.     
  89.     public void setListMap(Map<String, List<Student>> listMap) {     
  90.         this.listMap = listMap;     
  91.     }     
  92.          
  93.          
  94. }    

  这个action中给出了各种类型的map,下面我们有这样一个jsp,我们要将这些map展示到这个jsp中:

 

Jsp代码 
  1. <%@ page contentType="text/html;charset=UTF-8" %>     
  2. <%@ taglib prefix="s" uri="/struts-tags" %>     
  3. <html>     
  4. <head>     
  5. <title>struts2中的map遍历总结</title>     
  6. </head>     
  7. <body>     
  8.    <b>1.map中的value为String字符串</b><br>     
  9.    <s:iterator value="map" id="column">     
  10.    <s:property value="#column"/><br>     
  11.    key: <s:property value="key"/><br>     
  12.    value:<s:property value="value"/><br>     
  13.    ******************************************<br>     
  14.   </s:iterator>     
  15.       
  16.       
  17.   <b>2.map中的value为Student对象</b>     
  18.   <table border="1" width="50%"  cellspacing="0" cellpadding="0">     
  19.     <tr>     
  20.       <td>key=value</td>     
  21.       <td>ID</td>     
  22.       <td>num</td>     
  23.       <td>name</td>     
  24.       <td>sex</td>     
  25.       <td>age</td>     
  26.     </tr>     
  27.     <s:iterator value="studentMap" id="column">     
  28.     <tr>     
  29.      <td><s:property value="#column"/></td>     
  30.      <td><s:property value="value.id"/></td>     
  31.      <td><s:property value="value.num"/></td>     
  32.      <td><s:property value="value.name"/></td>     
  33.      <td><s:property value="value.sex"/></td>     
  34.      <td><s:property value="value.age"/></td>     
  35.     </tr>     
  36.     </s:iterator>     
  37.   </table>     
  38.   <p>     
  39.        
  40.        
  41.   <b>3.map中的value为String数组</b>     
  42.   <table border="1" width="50%" cellspacing="0" cellpadding="0">     
  43.     <tr>     
  44.       <td>key=value</td>     
  45.       <td>ID</td>     
  46.       <td>num</td>     
  47.       <td>name</td>     
  48.      <td>sex</td>     
  49.       <td>age</td>     
  50.     </tr>     
  51.     <s:iterator value="arrayMap" id="column">     
  52.     <tr>     
  53.      <td><s:property value="#column"/></td>     
  54.      <td><s:property value="value[0]"/></td>     
  55.      <td><s:property value="value[1]"/></td>     
  56.      <td><s:property value="value[2]"/></td>     
  57.      <td><s:property value="value[3]"/></td>     
  58.      <td><s:property value="value[4]"/></td>     
  59.     </tr>     
  60.     </s:iterator>     
  61.   </table>     
  62.   <p>     
  63.   <b>4.map中的value为list凑集</b>     
  64.   <table border="1" width="50%"  cellspacing="0" cellpadding="0">     
  65.     <tr>     
  66.       <td>class</td>     
  67.       <td>ID</td>     
  68.       <td>num</td>     
  69.       <td>name</td>     
  70.       <td>sex</td>     
  71.       <td>age</td>     
  72.     </tr>     
  73.        
  74.    <1.<s:iterator value="listHashMap" id="listid">     
  75.    <s:iterator value="#listid.value" id="listidsub">     
  76.        <tr>     
  77.             <td><s:property value="key"/></td>     
  78.             <td><s:property value="id"/></td>     
  79.            <td><s:property value="num"/></td>     
  80.             <td><s:property value="name"/></td>     
  81.             <td><s:property value="sex"/></td>     
  82.            <td><s:property value="age"/></td>     
  83.         </tr>     
  84.     </s:iterator>     
  85. </s:iterator>    
  86. </table>     
  87.        
  88.        
  89. </body>     
  90. </html>  
 

Java代码 
  1. 4、普通属性  
  2. public String execute(){  
  3.    username = "zhangsan";  
  4.    password = "123";  
  5. }  
  6. <s:property value="username"/><br>  
  7.    <s:property value="password"/><br>  
  8.   
  9. 5、自定义对象  
  10. public String execute(){  
  11.   userInfo = new UserInfo();  
  12.   userInfo.setUsername("hhh");  
  13.   userInfo.setPassword("111");  
  14. }  
  15. <s:property value="userInfo.username"/><br>  
  16.    <s:property value="userInfo.password"/><br>  
  17.   
  18. 6、List(普通属性)  
  19.   public String execute(){  
  20.   list = new ArrayList<String>();  
  21.   list.add("aaa");  
  22.   list.add("bbb");  
  23.   list.add("ccc");  
  24. }  
  25. <s:iterator value="list" var="var">  
  26.     <s:property value="var"/><br>  
  27.    </s:iterator>  
  28.    或者:  
  29.    <s:iterator value="list">  
  30.     <s:property/><br>  
  31.    </s:iterator>  
  32.     
  33. 6、List(自定义对象属性)  
  34. public String execute(){  
  35.   list = new ArrayList<UserInfo>();  
  36.   UserInfo userInfo = new UserInfo();  
  37.   userInfo.setUsername("u1");  
  38.   userInfo.setPassword("p1");  
  39.   userInfo.setRoleInfo(new RoleInfo("r1"));  
  40.   list.add(userInfo);  
  41.   userInfo = new UserInfo();  
  42.   userInfo.setUsername("u2");  
  43.   userInfo.setPassword("p2");  
  44.   userInfo.setRoleInfo(new RoleInfo("r2"));  
  45.   list.add(userInfo);  
  46. }  
  47. <s:iterator value="list" var="var">  
  48.     <s:property value="#var.username"/>  
  49.     <s:property value="#var.password"/>  
  50.     <s:property value="#var.roleInfo.rolename"/><br>  
  51. </s:iterator>  
  52. 或者:  
  53. <s:iterator value="list">  
  54.     <s:property value="username"/>  
  55.     <s:property value="password"/>  
  56.     <s:property value="roleInfo.rolename"/><br>  
  57. </s:iterator>  
  58.   
  59. 7、数组(普通属性)  
  60. public String execute(){  
  61.   strs = new String[2];  
  62.   strs[0] = "as";  
  63.   strs[1] = "asd";  
  64. }  
  65. <s:iterator value="strs">  
  66.     <s:property/><br>  
  67.    </s:iterator>  
  68. 或者:  
  69. <s:iterator value="strs" var="var">  
  70.     <s:property value="var"/><br>  
  71.    </s:iterator>  
  72.     
  73. 8、数组(自定义对象属性)  
  74. public String execute(){  
  75.   strs = new UserInfo[2];  
  76.   UserInfo userInfo = new UserInfo();  
  77.   userInfo.setUsername("u11");  
  78.   userInfo.setPassword("11");  
  79.   strs[0] = userInfo;  
  80.   userInfo = new UserInfo();  
  81.   userInfo.setUsername("u22");  
  82.   userInfo.setPassword("22");  
  83.   strs[1] = userInfo;  
  84. }  
  85. <s:iterator value="strs">  
  86.     <s:property value="username"/>  
  87.     <s:property value="password"/><br>  
  88.    </s:iterator>  
  89. 或者:  
  90. <s:iterator value="strs" var="var">  
  91.     <s:property value="#var.username"/>  
  92.     <s:property value="#var.password"/><br>  
  93. </s:iterator>  
  94.   
  95. 8、数组(自定义对象属性)  
  96. public String execute(){  
  97.   strs = new UserInfo[2];  
  98.   UserInfo userInfo = new UserInfo();  
  99.   userInfo.setUsername("u11");  
  100.   userInfo.setPassword("11");  
  101.   userInfo.setRoleInfo(new RoleInfo("r11"));  
  102.   strs[0] = userInfo;  
  103.   userInfo = new UserInfo();  
  104.   userInfo.setUsername("u22");  
  105.   userInfo.setPassword("22");  
  106.   userInfo.setRoleInfo(new RoleInfo("r22"));  
  107.   strs[1] = userInfo;  
  108. }  
  109. <s:iterator value="strs" var="var">  
  110.     <s:property value="#var.username"/>  
  111.     <s:property value="#var.password"/>  
  112.     <s:property value="#var.roleInfo.rolename"/><br>  
  113. </s:iterator>  
  114. 或者:  
  115. <s:iterator value="strs">  
  116.     <s:property value="username"/>  
  117.     <s:property value="password"/>  
  118.     <s:property value="roleInfo.rolename"/><br>  
  119. </s:iterator>  
  120.   
  121. 8、Map(普通属性)  
  122. public String execute(){  
  123.   map = new HashMap<String,String>();  
  124.   map.put("k1""v1");  
  125.   map.put("k2""v2");  
  126. }  
  127. <s:iterator value="map" var="var">  
  128.     <s:property value="#var.key"/>  
  129.     <s:property value="#var.value"/><br>  
  130. </s:iterator>  
  131. 或者:  
  132. <s:iterator value="map">  
  133.     <s:property value="key"/>  
  134.     <s:property value="value"/><br>  
  135. </s:iterator>  
  136.   
  137. 8、Map(自定义对象属性)  
  138. public String execute(){  
  139.   map = new HashMap<String,UserInfo>();  
  140.   UserInfo userInfo = new UserInfo();  
  141.   userInfo.setUsername("u1");  
  142.   userInfo.setPassword("p1");  
  143.   userInfo.setRoleInfo(new RoleInfo("r1"));  
  144.   map.put("k1", userInfo);  
  145.   userInfo = new UserInfo();  
  146.   userInfo.setUsername("u2");  
  147.   userInfo.setPassword("p2");  
  148.   userInfo.setRoleInfo(new RoleInfo("r2"));  
  149.   map.put("k2", userInfo);  
  150. }  
  151. <s:iterator value="map" var="var">  
  152.     <s:property value="#var.key"/>  
  153.     <s:property value="#var.value.username"/>  
  154.     <s:property value="#var.value.password"/>  
  155.     <s:property value="#var.value.roleInfo.rolename"/><br>  
  156. </s:iterator>  
  157. 或者  
  158. <s:iterator value="map">  
  159.     <s:property value="key"/>  
  160.     <s:property value="value.username"/>  
  161.     <s:property value="value.password"/>  
  162.     <s:property value="value.roleInfo.rolename"/><br>  
  163. </s:iterator>  
  164.   
  165. 8、Map嵌套Map(自定义对象属性)  
  166. public String execute(){  
  167.   map = new TreeMap<String,Map<String,UserInfo>>();  
  168.   Map<String,UserInfo> innerMap = new TreeMap<String,UserInfo>();  
  169.   UserInfo userInfo = new UserInfo();  
  170.   userInfo.setUsername("u1");  
  171.   userInfo.setPassword("p1");  
  172.   userInfo.setRoleInfo(new RoleInfo("r1"));  
  173.   userInfo = new UserInfo();  
  174.   userInfo.setUsername("u11");  
  175.   userInfo.setPassword("p11");  
  176.   userInfo.setRoleInfo(new RoleInfo("r11"));  
  177.   innerMap.put("k1", userInfo);  
  178.   innerMap.put("k11", userInfo);  
  179.   map.put("key1", innerMap);  
  180.   //  
  181.   innerMap = new TreeMap<String,UserInfo>();  
  182.   userInfo = new UserInfo();  
  183.   userInfo.setUsername("u2");  
  184.   userInfo.setPassword("p2");  
  185.   userInfo.setRoleInfo(new RoleInfo("r2"));  
  186.   userInfo = new UserInfo();  
  187.   userInfo.setUsername("u22");  
  188.   userInfo.setPassword("p22");  
  189.   userInfo.setRoleInfo(new RoleInfo("r22"));  
  190.   innerMap.put("k2", userInfo);  
  191.   innerMap.put("k22", userInfo);  
  192.   map.put("key2", innerMap);  
  193. }  
  194. <s:iterator value="map" var="var">  
  195.     <s:iterator value="value">  
  196.      <s:property value="#var.key"/>  
  197.      <s:property value="key"/>  
  198.      <s:property value="value.username"/>  
  199.      <s:property value="value.password"/>  
  200.      <s:property value="value.roleInfo.rolename"/><br>  
  201.     </s:iterator>  
  202. </s:iterator>  
 

转载于:https://my.oschina.net/bluesroot/blog/222564

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值