struts2<S:iterator>遍历map小结

1.MapAction.java 

import java.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  import com.opensymphony.xwork2.ActionSupport
import com.model.Student
public class MapAction extends ActionSupport  
{  
 
    private Map<String,String> map;  
     
    private Map<String,Student> studentMap;  
      
    private Map<String,String[]> arrayMap;  
      
    private Map<String,List<Student>> listMap;  
           public String testMap()  
   {  
       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);  
          
         
         
          
        return SUCCESS;  
          
    }  
      
    public Map<String, String> getMap() {  
       return map;  
    }  
 
   public void setMap(Map<String, String> map) {  
        this.map = map;  
    }  
      
    public Map<String, Student> getStudentMap() {  
        return studentMap;  
    }       public void setStudentMap(Map<String, Student> studentMap) {  
        this.studentMap = studentMap;  
    }       public Map<String, String[]> getArrayMap() {  
       return arrayMap;  
   }  
 
 
    public void setArrayMap(Map<String, String[]> arrayMap) {  
        this.arrayMap = arrayMap;  
    }  
 
 
    public Map<String, List<Student>> getListMap() {  
        return listMap;  
    }  
 
    public void setListMap(Map<String, List<Student>> listMap) {  
        this.listMap = listMap;  
    }  
      
      
}  2.testMap.jsp
<%@ page contentType="text/html;charset=UTF-8" %>  
<%@ taglib prefix="s" uri="/struts-tags" %>  
<html>  
<head>  
<title>struts2中的map遍历总结</title>  
</head>  
<body>  
   <b>1.map中的value为String字符串</b><br>  
   <s:iterator value="map" id="column">  
   <s:property value="#column"/><br>  
   key: <s:property value="key"/><br>  
   value:<s:property value="value"/><br>  
   ******************************************<br>  
  </s:iterator>  
   
   
  <b>2.map中的value为Student对象</b>  
  <table border="1" width="50%"  cellspacing="0" cellpadding="0">  
    <tr>  
      <td>key=value</td>  
      <td>ID</td>  
      <td>num</td>  
      <td>name</td>  
      <td>sex</td>  
      <td>age</td>  
    </tr>  
    <s:iterator value="studentMap" id="column">  
    <tr>  
     <td><s:property value="#column"/></td>  
     <td><s:property value="value.id"/></td>  
     <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>  
  </table>  
  <p>  
    
    
  <b>3.map中的value为String数组</b>  
  <table border="1" width="50%" cellspacing="0" cellpadding="0">  
    <tr>  
      <td>key=value</td>  
      <td>ID</td>  
      <td>num</td>  
      <td>name</td>  
     <td>sex</td>  
      <td>age</td>  
    </tr>  
    <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>  
  </table>  
  <p>  
  <b>4.map中的value为list集合</b>  
  <table border="1" width="50%"  cellspacing="0" cellpadding="0">  
    <tr>  
      <td>class</td>  
      <td>ID</td>  
      <td>num</td>  
      <td>name</td>  
      <td>sex</td>  
      <td>age</td>  
    </tr>  
    
   <1.<s:iterator value="listHashMap" id="listid">  
   <s:iterator value="#listid.value" id="listidsub">  
       <tr>  
            <td><s:property value="key"/></td>  
            <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> 
</table>  
    
    
 
-------------------------------------------------------------------------------------------------------------------------------------------------
4、普通属性 
public String execute(){ 
   username = "zhangsan"; 
   password = "123"; 

<s:property value="username"/><br> 
   <s:property value="password"/><br>

5、自定义对象 
public String execute(){ 
  userInfo = new UserInfo(); 
  userInfo.setUsername("hhh"); 
  userInfo.setPassword("111"); 

<s:property value="userInfo.username"/><br> 
   <s:property value="userInfo.password"/><br>

6、List(普通属性) 
  public String execute(){ 
  list = new ArrayList<String>(); 
  list.add("aaa"); 
  list.add("bbb"); 
  list.add("ccc"); 

<s:iterator value="list" var="var"> 
    <s:property value="var"/><br> 
   </s:iterator> 
   或者: 
   <s:iterator value="list"> 
    <s:property/><br> 
   </s:iterator> 
   
6、List(自定义对象属性) 
public String execute(){ 
  list = new ArrayList<UserInfo>(); 
  UserInfo userInfo = new UserInfo(); 
  userInfo.setUsername("u1"); 
  userInfo.setPassword("p1"); 
  userInfo.setRoleInfo(new RoleInfo("r1")); 
  list.add(userInfo); 
  userInfo = new UserInfo(); 
  userInfo.setUsername("u2"); 
  userInfo.setPassword("p2"); 
  userInfo.setRoleInfo(new RoleInfo("r2")); 
  list.add(userInfo); 

<s:iterator value="list" var="var"> 
    <s:property value="#var.username"/> 
    <s:property value="#var.password"/> 
    <s:property value="#var.roleInfo.rolename"/><br> 
</s:iterator> 
或者: 
<s:iterator value="list"> 
    <s:property value="username"/> 
    <s:property value="password"/> 
    <s:property value="roleInfo.rolename"/><br> 
</s:iterator>

7、数组(普通属性) 
public String execute(){ 
  strs = new String[2]; 
  strs[0] = "as"; 
  strs[1] = "asd"; 

<s:iterator value="strs"> 
    <s:property/><br> 
   </s:iterator> 
或者: 
<s:iterator value="strs" var="var"> 
    <s:property value="var"/><br> 
   </s:iterator> 
   
8、数组(自定义对象属性) 
public String execute(){ 
  strs = new UserInfo[2]; 
  UserInfo userInfo = new UserInfo(); 
  userInfo.setUsername("u11"); 
  userInfo.setPassword("11"); 
  strs[0] = userInfo; 
  userInfo = new UserInfo(); 
  userInfo.setUsername("u22"); 
  userInfo.setPassword("22"); 
  strs[1] = userInfo; 

<s:iterator value="strs"> 
    <s:property value="username"/> 
    <s:property value="password"/><br> 
   </s:iterator> 
或者: 
<s:iterator value="strs" var="var"> 
    <s:property value="#var.username"/> 
    <s:property value="#var.password"/><br> 
</s:iterator>

8、数组(自定义对象属性) 
public String execute(){ 
  strs = new UserInfo[2]; 
  UserInfo userInfo = new UserInfo(); 
  userInfo.setUsername("u11"); 
  userInfo.setPassword("11"); 
  userInfo.setRoleInfo(new RoleInfo("r11")); 
  strs[0] = userInfo; 
  userInfo = new UserInfo(); 
  userInfo.setUsername("u22"); 
  userInfo.setPassword("22"); 
  userInfo.setRoleInfo(new RoleInfo("r22")); 
  strs[1] = userInfo; 

<s:iterator value="strs" var="var"> 
    <s:property value="#var.username"/> 
    <s:property value="#var.password"/> 
    <s:property value="#var.roleInfo.rolename"/><br> 
</s:iterator> 
或者: 
<s:iterator value="strs"> 
    <s:property value="username"/> 
    <s:property value="password"/> 
    <s:property value="roleInfo.rolename"/><br> 
</s:iterator>

8、Map(普通属性) 
public String execute(){ 
  map = new HashMap<String,String>(); 
  map.put("k1", "v1"); 
  map.put("k2", "v2"); 

<s:iterator value="map" var="var"> 
    <s:property value="#var.key"/> 
    <s:property value="#var.value"/><br> 
</s:iterator> 
或者: 
<s:iterator value="map"> 
    <s:property value="key"/> 
    <s:property value="value"/><br> 
</s:iterator>

8、Map(自定义对象属性) 
public String execute(){ 
  map = new HashMap<String,UserInfo>(); 
  UserInfo userInfo = new UserInfo(); 
  userInfo.setUsername("u1"); 
  userInfo.setPassword("p1"); 
  userInfo.setRoleInfo(new RoleInfo("r1")); 
  map.put("k1", userInfo); 
  userInfo = new UserInfo(); 
  userInfo.setUsername("u2"); 
  userInfo.setPassword("p2"); 
  userInfo.setRoleInfo(new RoleInfo("r2")); 
  map.put("k2", userInfo); 

<s:iterator value="map" var="var"> 
    <s:property value="#var.key"/> 
    <s:property value="#var.value.username"/> 
    <s:property value="#var.value.password"/> 
    <s:property value="#var.value.roleInfo.rolename"/><br> 
</s:iterator> 
或者 
<s:iterator value="map"> 
    <s:property value="key"/> 
    <s:property value="value.username"/> 
    <s:property value="value.password"/> 
    <s:property value="value.roleInfo.rolename"/><br> 
</s:iterator>

8、Map嵌套Map(自定义对象属性) 
public String execute(){ 
  map = new TreeMap<String,Map<String,UserInfo>>(); 
  Map<String,UserInfo> innerMap = new TreeMap<String,UserInfo>(); 
  UserInfo userInfo = new UserInfo(); 
  userInfo.setUsername("u1"); 
  userInfo.setPassword("p1"); 
  userInfo.setRoleInfo(new RoleInfo("r1")); 
  userInfo = new UserInfo(); 
  userInfo.setUsername("u11"); 
  userInfo.setPassword("p11"); 
  userInfo.setRoleInfo(new RoleInfo("r11")); 
  innerMap.put("k1", userInfo); 
  innerMap.put("k11", userInfo); 
  map.put("key1", innerMap); 
  ////////////////////////// 
  innerMap = new TreeMap<String,UserInfo>(); 
  userInfo = new UserInfo(); 
  userInfo.setUsername("u2"); 
  userInfo.setPassword("p2"); 
  userInfo.setRoleInfo(new RoleInfo("r2")); 
  userInfo = new UserInfo(); 
  userInfo.setUsername("u22"); 
  userInfo.setPassword("p22"); 
  userInfo.setRoleInfo(new RoleInfo("r22")); 
  innerMap.put("k2", userInfo); 
  innerMap.put("k22", userInfo); 
  map.put("key2", innerMap); 

<s:iterator value="map" var="var"> 
    <s:iterator value="value"> 
     <s:property value="#var.key"/> 
     <s:property value="key"/> 
     <s:property value="value.username"/> 
     <s:property value="value.password"/> 
     <s:property value="value.roleInfo.rolename"/><br> 
    </s:iterator> 
</s:iterator>

<s:iterator>各种遍历用法的更多相关文章

  1. OAF通过Iterator标准遍历各行

    这两天本人接到客户反映的bug:oaf的采购订单页面,在添加超过10行提交后,会出现空指针异常.原来,oaf的默认显示行数为10行,超过10行,页面会分页.报空指针异常,就是因为没有取到分页的行.之前 ...

  2. Java中的集合Collection、Iterator和Foreach用法(一)

    1.Java集合概述 在编程中,常常需要集中存放多个数据.当然我们可以使用数组来保存多个对象.但数组长度不可变化,一旦在初始化时指定了数组长度,则这个数组长度是不可变的,如果需要保存个数变化的数据,数 ...

  3. IEnumerable 遍历用法

    咋一看到IEnumerable这个接口,我们可能会觉得很神奇,在一般的编程时,基本上我们是想不到去用它的,可是,俗话说得好,存在便是道理,那么,它对我们来说,能够带来哪些奇妙的事情呢? 要想弄懂它,我 ...

  4. iterator的简单用法

    // 给你写了个简单的例子,不知道合不合你的题意? vector<int>vertical; ; i<; i++) { vertical.push_back(i); } vector ...

  5. Java中Iterator(迭代器)的用法及其背后机制的探究

    在Java中遍历List时会用到Java提供的Iterator,Iterator十分好用,原因是: 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结 ...

  6. Java Iterator的一般用法

    Iterator(迭代器) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的I ...

  7. 用Iterator实现遍历集合

    使用Collection类的Iterator,可以方便的遍历Vector, ArrayList, LinkedList等集合元素,避免通过get()方法遍历时,针对每一种对象单独进行编码. 示例: C ...

  8. 56 容器(十)——Iterator迭代器遍历容器

    迭代器的获取 LIst与Set容器统一使用他们的对象.Iterator()方法获得迭代器对象,然后使用while循环配合迭代器的方法hasNext()及next()来遍历容器. List<Str ...

  9. Iterator(遍历器) 和 for...of 循环

    是generator的前置知识 generator :https://www.cnblogs.com/wangtong111/p/11322961.html 遍历器(Iterator)就是这样一种机制 ...

随机推荐

  1. SQLSERVER吞噬内存解决记录

    现在手上有一个不大不小的系统,运行了一段时间,因为是24*7不断运行,所以内存逐渐增高,慢慢的会飙到95%以上,然后不得不重启电脑,因为用的是云,怕虚拟机重启down掉起不来,重启操作还只能在凌晨4. ...

  2. 基本的文件 I/O

    基本的文件 I/O MSDN 抽象基类 Stream 支持读取和写入字节.Stream 集成了异步支持.其默认实现根据其相应的异步方法来定义同步读取和写入,反之亦然. 所有表示流的类都是从 Strea ...

  3. LeetCode: 221_Maximal Square | 二维0-1矩阵中计算包含1的最大正方形的面积 | Medium

    题目: Given a 2D binary matrix filled with 's and return its area. For example, given the following ma ...

  4. 超时时间已到。在操作完成之前超时时间已过或服务器未响应。 (.Net SqlClient Data Provider)

    超时时间已到.在操作完成之前超时时间已过或服务器未响应. (.Net SqlClient Data Provider) 在做一个小东西的时候出现了这个问题,就是使用VS调试几次项目后,使用SQL Se ...

  5. Raspberry Pi --操作LED

    最简单的一个树莓派GPIO操作入门,这里记录以下 先上连接图: 卧槽.图真特么的大 用到了GPIO的GND和#18针脚,这就不上图了,红色的线接的是18针脚,暗色的线接的是GND针脚,下面上Pytho ...

  6. Google Chrome 扩展程序开发

    根据公司的规定,每月八小时,弹性工作制.所以大家平时来的不太准时,如果有事,下班也就早些回去了.所以一个月下来工作时间可能不够,但是公司的考勤日历是这样的: 除了请假和法定节假日外,其他样式显示都是一 ...

  7. zk框架销毁Page上的Component

    销毁Page上的Component ZK的组件之间是树状结构的,每一组件都只有一个根. 从页面上销毁一个组件可以通过下面两种方式来实现: 1. 组件不是根组件时:Component.setParent ...

  8. ASP.NET 网站支持多语言

    ASP.NET网站支持多语言 (本地资源文件和全局资源文件的调用及需注意的地方总结)   一.   本地资源文件(App_LocalResources): ①.     本地资源的生成及调用 1.本地 ...

  9. 利用SVN工具下载OpenCore代码

    OpenCore原来使用的是CVS管理代码的.从09年起,更换用SVN管理代码,大家可以用TortoiseSVN软件下载代码,网址是:http://tortoisesvn.net/,安装后tortoi ...

  10. 爬虫技术 -- 进阶学习(七)简单爬虫抓取示例(附c#代码)

    这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string&g ...