`
mywhy
  • 浏览: 66557 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

struts2标签 遍历map集合

 
阅读更多
首先我们来构造几个map集合。
 
 假设如下代码 都是在ssh配置环境下搭建好,(至少struts2开发环境搭建好)
 
(1).java 代码  
 
     下面的student对象包含的字段为
 
     private Long id;
     private String num;
     private String name;
     private String sex;
     private Integer age;
      Action中的代码
 
           private Map<String,String> map; 
           private Map<String,Student> studentMap; 
           private Map<String,String[]> arrayMap; 
           private Map<String,List<Student>> listMap;   // 实现 四个map对象的get 和set方法。
 
 map=new HashMap<String,String>(); 
 map.put("1", "one"); 
 map.put("2", "two"); 
 
 studentMap=new HashMap<String,Student>(); 
 studentMap.put("student1",new Student(new Long(1),"20034140201","张三1","男",25)); 
 studentMap.put("student2",new Student(new Long(2),"20034140202","张三2","女",26)); 
 studentMap.put("student3",new Student(new Long(3),"20034140202","张三3","男",27)); 
 
 arrayMap=new HashMap<String,String[]>(); 
 arrayMap.put("arr1", new String[]{"1","2003401","leejie","male","20"}); 
 arrayMap.put("arr2", new String[]{"2","2003402","huanglie","male","25"}); 
 arrayMap.put("arr3", new String[]{"3","2003403","lixiaoning","male","21"}); 
 
 
 
 listMap=new HashMap<String,List<Student>>(); 
 
 List<Student> list1=new ArrayList<Student>(); 
 list1.add(new Student(new Long(1),"20034140201","张三1","男",25)); 
 list1.add(new Student(new Long(2),"20034140202","张三2","男",25)); 
 list1.add(new Student(new Long(3),"20034140203","张三3","男",25)); 
 listMap.put("class1", list1); 
 
 List<Student> list2=new ArrayList<Student>(); 
 list2.add(new Student(new Long(1),"20034140301","李四1","男",20)); 
 list2.add(new Student(new Long(2),"20034140302","李四2","男",21)); 
 list2.add(new Student(new Long(3),"20034140303","李四3","男",22)); 
 list2.add(new Student(new Long(4),"20034140304","李四4","男",23)); 
 listMap.put("class2", list2); 
 
(2).通过上述java代码我们已经构建好了4个map集合。 接下来的重头戏就是如何通过strut2的标签来获取map集合中的值。
 
<b>1.map中的value为String字符串</b><br>    
 
<s:iterator value="map" id="column">    
<s:property value="#column"/><br>      //这里获取到的值为key=value    即:键值对
key: <s:property value="key"/><br>      //这里的key为内置的,我们只要在value中写上key 即会有值
value:<s:property value="value"/><br>    //同样这里的value也为内置的
</s:iterator>    
 
 <b>2.map中的value为Student对象</b>    
  <s:iterator value="studentMap" id="column">    
  <tr>    
   <td><s:property value="#column"/></td>    
   <td><s:property value="key"/></td>   
   <td><s:property value="value"/></td>   //这里的value返回的是一个student对象
   <td><s:property value="value.id"/></td>    //这里获取student对象中的属性值
   <td><s:property value="value.num"/></td>    
   <td><s:property value="value.name"/></td>    
   <td><s:property value="value.sex"/></td>    
   <td><s:property value="value.age"/></td>    
  </tr>    
  </s:iterator>    
 
遍历studentMap 还可以用下面方式,跟上面方式效果是一样的
 
<b>2.map中的value为Student对象</b>    
  <s:iterator value="studentMap" id="column">    
  <tr>    
   <td><s:property value="#column"/></td>    
   <td><s:property value="key"/></td>   
   <s:iterator value="value">
   <td><s:property value="id"/></td>    
   <td><s:property value="num"/></td>    
   <td><s:property value="name"/></td>    
   <td><s:property value="sex"/></td>    
   <td><s:property value="age"/></td>    
    </s:iterator>
  </tr>    
  </s:iterator>  
 
 
  
  
  <b>3.map中的value为String数组</b>    
 <s:iterator value="arrayMap" id="column">    
   <tr>    
    <td><s:property value="#column"/></td>  <!--同时取出键和值-->
    <td><s:property value="value[0]"/></td>    
    <td><s:property value="value[1]"/></td>    
    <td><s:property value="value[2]"/></td>    
    <td><s:property value="value[3]"/></td>    
    <td><s:property value="value[4]"/></td>    
   </tr>    
   </s:iterator>   
   
     <b>4.map中的value为list集合</b>    
      <s:iterator value="listMap" id="column">    
    <s:set name="total" value="#column.value.size"/>    //注意<s:set 标签的用法
    <s:iterator value="#column.value" status="s">     //这里#column.value 还是一个student的list集合,因而需要再次迭代一次
     <tr>    
     <s:property value="#s.first"/>     //判断是不是集合中的第一个对象
       <s:if test="#s.first"><td rowspan="${total}"><s:property value="#column.key"/></td></s:if>    
       <td><s:property value="id"/></td>    
       <td><s:property value="num"/></td>    
       <td><s:property value="name"/></td>    
       <td><s:property value="sex"/></td>    
       <td><s:property value="age"/></td>    
     </tr>    
    </s:iterator>    
 </s:iterator>   
转自:http://www.2cto.com/kf/201310/252442.html
分享到:
评论

相关推荐

    struts2中的map遍历

    总的来说,Struts2中的Map遍历是通过OGNL和Struts2标签库实现的,这使得在视图层处理和展示Map数据变得简单而灵活。开发者可以根据需求构建各种复杂逻辑,高效地管理Web应用中的数据。了解并熟练掌握这一功能,对于...

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

    在Struts2中,`iterator`标签是用于遍历集合数据的重要工具,它可以用来迭代Map、List和数组等数据结构,以便在视图层进行展示。本篇文章将深入探讨`iterator`标签在遍历这些数据类型时的具体用法。 首先,我们来看...

    struts2遍历集合

    根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...

    遍历Map集合.pdf

    本文主要讲解了在Java中如何遍历Map集合,这是在日常编程中经常遇到的一个操作,特别是在需要处理键值对数据时。以下将详细介绍Map集合的...对于Web开发者,了解如何在JSP页面中利用标签库遍历Map集合也是十分必要的。

    计算机遍历Map集合.pdf

    2. **遍历Map集合(值是对象)**:当Map的值是自定义对象时,可以通过EL表达式直接访问对象的属性。 ```jsp ${map}" var="m"&gt; ${m.key} ${m.value.name} &lt;!-- 假设Person对象有name属性 --&gt; ``` 另外,Struts框架...

    详解Struts2标签遍历

    Struts2标签遍历是Struts2框架中的一个重要组件,用于在JSP页面中遍历集合中的元素。该标签可以遍历数组、集合、Map等数据结构,提供了多种方式来访问和操作集合中的元素。 1. 基本用法 Struts2标签遍历的基本用法...

    struts2标签使用例子

    在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。

    常用struts1遍历方法

    除了遍历List类型的集合之外,`&lt;logic:iterate&gt;`还支持遍历Map类型的集合。在遍历时,可以同时获取Map中的key和value。 **示例代码:** ```jsp HashMap months = new HashMap(); months.put("Jan", "January"); ...

    在Struts标签中对数据的几种遍历

    本文将重点介绍Struts中几种常用的数据遍历标签及其用法,包括`&lt;logic:iterate&gt;`标签遍历集合、遍历Map以及遍历Map中的Value集合等场景。 #### 遍历集合 **1. 基本用法** 在Struts中,`&lt;logic:iterate&gt;`标签被...

    struts2迭代 Map List

    其中,`&lt;s:iterator&gt;`标签是用于遍历集合(如List或Map)的关键。 1. **标签** `&lt;s:iterator&gt;`标签是Struts2中最常用的标签之一,它用于迭代任何可迭代的对象,包括List和Map。基本语法如下: ```jsp &lt;!-- ...

    struts2标签解析

    Struts2标签库是Java Web开发中的一个强大工具,它为开发者提供了丰富的UI组件和控制逻辑,极大地简化了视图层的代码编写。Struts2框架的标签库基于OGNL(Object-Graph Navigation Language)表达式语言,使得在JSP...

    struts2标签库详解(非常不错)

    10. `s:iterator`: 循环标签,常用于遍历集合数据,如List、Map等。 11. `s:include` 和 `s:useBean`: 分别用于包含其他页面和实例化Java Bean。 Struts2标签库API文档详细列出了每个标签的属性、用法和示例,帮助...

    struts2标签详解与实例

    4. `&lt;s:iterator&gt;`:迭代标签,用于遍历集合对象,如List、Map等。例如: ```jsp &lt;td&gt;&lt;s:property value="username" /&gt; &lt;td&gt;&lt;s:property value="email" /&gt; ``` 5. `&lt;s:action&gt;`:执行一个Struts2动作,...

    struts2标签大全

    10. **s:iterator标签**:用于迭代集合,常用于遍历列表、数组或Map,可以在循环内部嵌套其他Struts2标签。 11. **s:property标签**:用于显示Action类属性的值,可以格式化输出,支持EL表达式。 12. **s:debug...

    struts2标签介绍

    Struts2标签是Java Web开发框架Struts2中的核心组件之一,它极大地简化了视图层的构建,提高了代码的可读性和维护性。在Struts2中,标签主要用于处理和展示数据,使得开发者能够更加专注于业务逻辑,而无需深陷于...

    struts2的标签应用

    - `&lt;s:iterator&gt;`:用于遍历集合,如ArrayList或Map,常用于表格展示。 - `&lt;s:if&gt;`和`&lt;s:else&gt;`:条件标签,根据条件来决定是否渲染某个部分的HTML代码。 - `&lt;s:choose&gt;`, `&lt;s:when&gt;`, `&lt;s:otherwise&gt;`:类似Java...

    Struts标签集合简介

    该标签用于遍历集合对象,如ArrayList或Map,并在循环中显示数据。 L. `&lt;s:label&gt;`: 创建只读标签,通常用于显示静态文本。 M. `&lt;s:merge&gt;`: 合并遍历集合的结果。 O. `, &lt;s:optiontransferselect&gt;`: `...

    Struts2标签库详解

    2. `&lt;s:iterator&gt;`:迭代标签,可以遍历数组、集合、Map等数据结构。 3. `&lt;s:switch&gt;` 和 `&lt;s:case&gt;`:类似于Java的switch语句,用于多分支判断。 4. `&lt;s:include&gt;`:包含其他JSP或Freemarker模板。 三、Struts2...

    struts1.2标签实例

    9. `&lt;s:iterator&gt;`:迭代集合,常用于遍历列表、数组或Map。 10. `&lt;s:if&gt;`和`s:else`:条件判断,根据表达式的值决定是否渲染标签内的内容。 11. `&lt;s:property&gt;`:显示模型数据,可以用来输出ActionForm或Action中的...

Global site tag (gtag.js) - Google Analytics