`

struts2<s:iterator>遍历map

 
阅读更多

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

Java代码
  1. importjava.util.ArrayList;
  2. importjava.util.HashMap;
  3. importjava.util.List;
  4. importjava.util.Map;
  5. importcom.opensymphony.xwork2.ActionSupport
  6. importcom.model.Student
  7. publicclassMapActionextendsActionSupport
  8. {
  9. privateMap<String,String>map;
  10. privateMap<String,Student>studentMap;
  11. privateMap<String,String[]>arrayMap;
  12. privateMap<String,List<Student>>listMap;
  13. publicStringtestMap()
  14. {
  15. map=newHashMap<String,String>();
  16. map.put("1""one");
  17. map.put("2""two");
  18. studentMap=newHashMap<String,Student>();
  19. studentMap.put("student1"newStudent(newLong(1),"20034140201""张三1""男"25));
  20. studentMap.put("student2"newStudent(newLong(2),"20034140202""张三2""女"26));
  21. studentMap.put("student3"newStudent(newLong(3),"20034140202""张三3""男"27));
  22. arrayMap=newHashMap<String,String[]>();
  23. arrayMap.put("arr1"newString[]{"1""2003401""leejie""male""20"});
  24. arrayMap.put("arr2"newString[]{"2""2003402""huanglie""male""25"});
  25. arrayMap.put("arr3"newString[]{"3""2003403""lixiaoning""male""21"});
  26. listMap=newHashMap<String,List<Student>>();
  27. List<Student>list1=newArrayList<Student>();
  28. list1.add(newStudent(newLong(1),"20034140201""张三1""男"25));
  29. list1.add(newStudent(newLong(2),"20034140202""张三2""男"25));
  30. list1.add(newStudent(newLong(3),"20034140203""张三3""男"25));
  31. listMap.put("class1",list1);
  32. List<Student>list2=newArrayList<Student>();
  33. list2.add(newStudent(newLong(1),"20034140301""李四1""男"20));
  34. list2.add(newStudent(newLong(2),"20034140302""李四2""男"21));
  35. list2.add(newStudent(newLong(3),"20034140303""李四3""男"22));
  36. list2.add(newStudent(newLong(4),"20034140304""李四4""男"23));
  37. listMap.put("class2",list2);
  38. returnSUCCESS;
  39. }
  40. publicMap<String,String>getMap(){
  41. returnmap;
  42. }
  43. publicvoidsetMap(Map<String,String>map){
  44. this.map=map;
  45. }
  46. publicMap<String,Student>getStudentMap(){
  47. returnstudentMap;
  48. }
  49. publicvoidsetStudentMap(Map<String,Student>studentMap){
  50. this.studentMap=studentMap;
  51. }
  52. publicMap<String,String[]>getArrayMap(){
  53. returnarrayMap;
  54. }
  55. publicvoidsetArrayMap(Map<String,String[]>arrayMap){
  56. this.arrayMap=arrayMap;
  57. }
  58. publicMap<String,List<Student>>getListMap(){
  59. returnlistMap;
  60. }
  61. publicvoidsetListMap(Map<String,List<Student>>listMap){
  62. this.listMap=listMap;
  63. }
  64. }

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

Jsp代码
  1. <%@pagecontentType="text/html;charset=UTF-8"%>
  2. <%@taglibprefix="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:iteratorvalue="map"id="column">
  10. <s:propertyvalue="#column"/><br>
  11. key:<s:propertyvalue="key"/><br>
  12. value:<s:propertyvalue="value"/><br>
  13. ******************************************<br>
  14. </s:iterator>
  15. <b>2.map中的value为Student对象</b>
  16. <tableborder="1"width="50%"cellspacing="0"cellpadding="0">
  17. <tr>
  18. <td>key=value</td>
  19. <td>ID</td>
  20. <td>num</td>
  21. <td>name</td>
  22. <td>sex</td>
  23. <td>age</td>
  24. </tr>
  25. <s:iteratorvalue="studentMap"id="column">
  26. <tr>
  27. <td><s:propertyvalue="#column"/></td>
  28. <td><s:propertyvalue="value.id"/></td>
  29. <td><s:propertyvalue="value.num"/></td>
  30. <td><s:propertyvalue="value.name"/></td>
  31. <td><s:propertyvalue="value.sex"/></td>
  32. <td><s:propertyvalue="value.age"/></td>
  33. </tr>
  34. </s:iterator>
  35. </table>
  36. <p>
  37. <b>3.map中的value为String数组</b>
  38. <tableborder="1"width="50%"cellspacing="0"cellpadding="0">
  39. <tr>
  40. <td>key=value</td>
  41. <td>ID</td>
  42. <td>num</td>
  43. <td>name</td>
  44. <td>sex</td>
  45. <td>age</td>
  46. </tr>
  47. <s:iteratorvalue="arrayMap"id="column">
  48. <tr>
  49. <td><s:propertyvalue="#column"/></td>
  50. <td><s:propertyvalue="value[0]"/></td>
  51. <td><s:propertyvalue="value[1]"/></td>
  52. <td><s:propertyvalue="value[2]"/></td>
  53. <td><s:propertyvalue="value[3]"/></td>
  54. <td><s:propertyvalue="value[4]"/></td>
  55. </tr>
  56. </s:iterator>
  57. </table>
  58. <p>
  59. <b>4.map中的value为list凑集</b>
  60. <tableborder="1"width="50%"cellspacing="0"cellpadding="0">
  61. <tr>
  62. <td>class</td>
  63. <td>ID</td>
  64. <td>num</td>
  65. <td>name</td>
  66. <td>sex</td>
  67. <td>age</td>
  68. </tr>
  69. <1.<s:iteratorvalue="listHashMap"id="listid">
  70. <s:iteratorvalue="#listid.value"id="listidsub">
  71. <tr>
  72. <td><s:propertyvalue="key"/></td>
  73. <td><s:propertyvalue="id"/></td>
  74. <td><s:propertyvalue="num"/></td>
  75. <td><s:propertyvalue="name"/></td>
  76. <td><s:propertyvalue="sex"/></td>
  77. <td><s:propertyvalue="age"/></td>
  78. </tr>
  79. </s:iterator>
  80. </s:iterator>
  81. </table>
  82. </body>
  83. </html>

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics