struts2 遍历Map的多种方法

struts2 遍历Map的多种方法

主要针对以下几种情况的Map:

Java代码  
  1.  private Map strMap = new HashMap();  
  2.   
  3. private Map perMap = new HashMap();  
  4.   
  5. private Map strArryMap = new HashMap();  
  6.   
  7. private Map> perLstMap = new HashMap>();  


下面给出一个示例
1).ExpressMapAction.java
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.expre.struts2.bean.Person;  
  7. import com.expre.struts2.bean.Phone;  
  8. import com.opensymphony.xwork2.ActionSupport;  
  9.   
  10. public class ExpressMapAction extends ActionSupport {  
  11.     private static final long serialVersionUID = -4251480679223607716L;  
  12.   
  13.     private Map strMap = new HashMap();  
  14.   
  15.     private Map perMap = new HashMap();  
  16.   
  17.     private Map strArryMap = new HashMap();  
  18.   
  19.     private Map> perLstMap = new HashMap>();  
  20.    
  21.  //get&set方法,这里都省略了  
  22.   
  23.  @Override  
  24.  public String execute() throws Exception {  
  25.   
  26.   // 值为字符串  
  27.   strMap.put("first""zxx");  
  28.   strMap.put("second""lsx");  
  29.   strMap.put("third""wxh");  
  30.   
  31.   // 值为javabean对象  
  32.   Person person = new Person("001""zxx"22);  
  33.   person.setPhone(new Phone("apple", 18957157189L));  
  34.   
  35.   perMap.put("one", person);  
  36.   
  37.   person = new Person("002""lsx"25);  
  38.   person.setPhone(new Phone("HTC", 18957157187L));  
  39.   perMap.put("two", person);  
  40.   
  41.   // 数组处理  
  42.   strArryMap.put("arr1"new String[] { "1""310000""hz" });  
  43.   strArryMap.put("arr2"new String[] { "2""310001""xh" });  
  44.   strArryMap.put("arr3"new String[] { "3""310002""sc" });  
  45.     
  46.   //list对象处理  
  47.   List list=new ArrayList();    
  48.   list.add(new Person("001""zxx"22));  
  49.   list.add(new Person("002""lsx"25));  
  50.   perLstMap.put("one", list);  
  51.     
  52.   list=new ArrayList();    
  53.   list.add(new Person("003""wlx"26));  
  54.   list.add(new Person("004""hzx"28));  
  55.   perLstMap.put("two", list);  
  56.   
  57.   return "result";  
  58.  }  
  59. }  


2).strMap.jsp
Java代码   收藏代码
  1.   
  2.    
  3.   
        
    •    
    • 访问Map:"strMap"/>
    •   
    •    
    • 访问Map中某个元素:  
    •     "strMap.first"/> |  
    •     "strMap['second']"/> |  
    •     "strMap[\'third\']"/>  
    •    
    •   
    •    
    • 访问Map中所有的key:"strMap.keys"/>
    •   
    •    
    • 访问Map中所有的value:"strMap.values"/>
    •   
    •    
    • 访问容器的大小:  
    •     "strMap.size()"/> |  
    •     "strMap.size"/>//这是map特别的地方  
    •     
    •   
    •      
    •     
    • 迭代循环取值,最简单  
    •      "strMap" id="entry">  
    •        "#entry"/>{  
    •         key: "key"/>   
    •       value:"value"/>}|  
    •          
    •       
    •   
    •        
    •     
    • 迭代循环取值  
    •      "strMap.keySet()" id="key">  
    •        "key"/>或"#key"/>:  
    •            if test="strMap[#key]!=null">   
    •             "strMap.get(#key)"/> |  
    •            if>  
    •          
    •       
    •   
    •        
    •       
    • 迭代循环取数组值  
    •      "strMap" id="entry">  
    •        "#entry"/>{  
    •        "value[0]"/>   
    •        "value[1]"/>  |  
    •        "value[2]"/>  }  
    •          
    •       
    •   
    •        
    •       
    • 迭代循环取对象值,最直接:  
    •        
          
      •        "perMap" id="entry">     
      •         
      •   
      •           "#entry"/>  {  
      •          ID:"value.ID"/>   
      •          Name:"value.name"/>   
      •          Age:"value.age"/>  }|  
      •          
      •   
      •          
      •        
        
    •       
    •   
    •        
    •       
    • 迭代循环取对象的属性值  
    •     "perMap.keySet()" id="key">  
    •           "#key"/>:  
    •            "perMap.get(#key)">  
    •                "ID"/>  
    •                "name"/>  
    •                "phone.name"/>  
    •            |  
    •         
    •       
    •   
    •        
    •       
    • 稍复杂的迭代  
    •        "perLstMap" id="entry">    
    •         "total" value="#entry.value.size"/>    
    •         "#entry.value" status="s">    
    •            if test="#s.first">  
    •             "#entry.key"/>:共${total}条  
    •            if>   {  
    •            "ID"/>  |  
    •            "name"/>   |  
    •            "age"/>  
    •             };  
    •             
    •         
    •    
    •   
    •    
      
  4.    
  5.  

你可能感兴趣的:(java)