`

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>

分享到:
评论

相关推荐

    Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)

    本文将深入探讨如何在JSP中将`List`, `Set`, `Map`等集合类型的数据传递到Action,然后再通过`&lt;s:iterator&gt;`标签进行遍历显示。这种方式对于数据的展示和交互具有重要的实践意义。 首先,我们需要了解Struts2的工作...

    Struts2 iterator 标签遍历 Map,List,数组(三十六)

    在这个例子中,`myMap`是Action类中的一个Map属性,`iterator`标签会遍历Map的每个键值对,并使用`s:property`标签显示它们。 接下来,我们讨论如何遍历List。List是一种有序的集合,`iterator`标签通过`status`...

    对 Struts 2 的 s: iterator tag 中嵌套的所有 s: checkbox 进行全选、反选操作

    `s:iterator`标签是Struts 2 提供的一个迭代标签,它允许开发者遍历任何可迭代的对象,如数组、集合或Map。在描述中提到的场景,这个标签用于遍历一个数据集,然后为每个元素创建一个`&lt;s:checkbox&gt;`标签。 `s:...

    struts2中的map遍历

    在Struts2中,我们可以使用OGNL(Object-Graph Navigation Language)表达式语言来遍历Map。 在Struts2中,Map遍历通常在JSP页面上进行,使用OGNL表达式。以下是一个简单的例子: ```jsp &lt;%@ taglib prefix="s" ...

    strust2 s:iterator常用情况个人总结

    在 Struts2 框架中,`s:iterator` 是一个非常重要的标签,它主要用于遍历集合数据(如数组、列表、映射表等),并且在 JSP 页面上显示这些数据。下面将根据提供的示例代码对 `s:iterator` 在不同场景下的使用进行...

    s:iterator 用法 (2).docx

    Struts2 框架中的 `s:iterator` 标签是用于遍历集合、数组、Map 或数据栈中的对象的,它提供了强大的迭代能力,能够方便地在JSP页面中展示数据。以下是对 `s:iterator` 标签用法的详细说明: 1. **数组或List遍历**...

    s:iterator 用法.pdf

    &lt;s:if test="#st.isEven()"&gt;现在的索引是奇数为:&lt;s:property value='#st.index'/&gt;&lt;/s:if&gt; 当前元素值:&lt;s:property value='char'/&gt; &lt;/s:iterator&gt; ``` 3. **遍历Map** `value`属性可以直接设置为Map对象,或者...

    s:iterator 用法.docx

    Struts2 框架中的 `s:iterator` 标签是用于遍历集合、数组、Map 或者数据栈中的对象的重要组件。这个标签提供了一种便捷的方式来在 JSP 页面上展示动态数据,使得开发者能够方便地循环遍历并显示元素。下面我们将...

    s:iterator 用法 (2).pdf

    Struts2框架中的`s:iterator`标签是用于循环遍历集合数据的重要标签,适用于处理数组、列表、Map等数据结构。下面将详细讲解这个标签的用法及其各种属性。 1. **基本用法** `s:iterator`标签的基础用法是通过`...

    struts2 标签库 帮助文档

    4. &lt;s:iterator&gt;&lt;/s:iterator&gt;-----用于遍历集合 L: 1. &lt;s:label&gt;&lt;/s:label&gt;-----只读的标签 M: 1. &lt;s:merge&gt;&lt;/s:merge&gt;-----合并遍历集合出来的值 O: 1. &lt;s:optgroup&gt;&lt;/s:optgroup&gt;-----获取...

    struts2中siterator 标签的使用详解 及 OGNL用法

    - **遍历数组或列表**:`&lt;s:iterator value="{'1','2','3','4','5'}" id='number'&gt;...&lt;/s:iterator&gt;` 这个例子中,`siterator` 标签将遍历给定的字符串数组,并为每个元素提供 ID 'number'。 - **利用 status 获取...

    struts2中iterator 标签的使用详解

    除了遍历列表和数组,`&lt;s:iterator&gt;`同样支持遍历Map类型的数据。Map的遍历可以通过直接指定Map的值或者引用数据栈中的Map对象来实现: ```xml &lt;s:iterator value="{'1':'a','2':'b'}" id="id" status="st"&gt; key: ...

    struts2遍历集合

    `s:iterator`标签是Struts2中最常用的遍历集合的标签。它的主要属性包括: - **value**:指定要遍历的集合,可以是数组、列表或Map类型的对象。 - **id**:为每个遍历元素设置一个临时变量名。 - **status**:提供...

    struts2迭代 Map List

    通过以上这些方法,Struts2的`&lt;s:iterator&gt;`标签能够灵活地处理Map和List数据,大大简化了JSP页面的数据展示逻辑。了解并熟练运用这些特性,能提高开发效率,让代码更加简洁易读。在实际项目中,根据具体需求进行...

    Struts2全部标签使用说明

    - `&lt;s:iterator&gt;` 用于遍历集合,如ArrayList、Map等,可以循环输出集合中的元素。 H. `&lt;s:head&gt;`, `&lt;s:hidden&gt;`: - `&lt;s:head/&gt;` 在HTML的`&lt;head&gt;`标签中使用,用于生成头部信息。 - `&lt;s:hidden&gt;` 创建一个隐藏字段...

    Struts iterator JSP Map 中嵌套 Map

    `&lt;s:iterator&gt;`是Struts2中的一个标签,用于迭代集合或者数组中的元素。在处理Map时,我们可以使用这个标签来迭代键值对,并在JSP页面上显示它们。 在描述中提到的"嵌套Map"是指Map的值本身还是另一个Map。这种结构...

    iterator嵌套,struts2

    在Struts2框架中,`iterator`标签是一个非常重要的组件,用于遍历各种集合对象,如List、Map等。在上述描述中,开发者遇到了一个关于`iterator`标签嵌套使用的问题,涉及到`LinkedHashMap`存储的数据结构。让我们...

    struts2标签介绍

    在Struts2中,所有的标签都统一在`&lt;s&gt;`前缀下,通过引入`&lt;%@ taglib prefix="s" uri="/struts-tags" %&gt;`就可以在页面上使用这些标签。 **A组标签:** 1. `&lt;s:a&gt;` - 用于创建超链接,与HTML的`&lt;a&gt;`标签类似,可以...

    struts2-tags-API.rar_struts2 api_struts2 tag api_struts2 tags ch

    5. **Iterative Tags**: `&lt;s:iterator&gt;`标签用于遍历集合,如List、Map等,是循环渲染数据的关键。 6. **Input Tags**: 包括`&lt;s:textfield&gt;`、`&lt;s:password&gt;`、`&lt;s:textarea&gt;`等,用于创建表单输入元素,并能自动...

    struts2标签详解与实例

    4. `&lt;s:iterator&gt;`:迭代标签,用于遍历集合对象,如List、Map等。例如: ```jsp &lt;s:iterator value="users"&gt; &lt;tr&gt; &lt;td&gt;&lt;s:property value="username" /&gt;&lt;/td&gt; &lt;td&gt;&lt;s:property value="email" /&gt;&lt;/td&gt; &lt;/tr&gt; ...

Global site tag (gtag.js) - Google Analytics