struts2 遍历Map的多种方法

系统 1504 0

struts2 遍历Map的多种方法  

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

Java代码     收藏代码
  1.   private  Map<String, String> strMap =  new  HashMap<String, String>();  
  2.   
  3. private  Map<String, Person> perMap =  new  HashMap<String, Person>();  
  4.   
  5. private  Map<String, String[]> strArryMap =  new  HashMap<String, String[]>();  
  6.   
  7. private  Map<String, List<Person>> perLstMap =  new  HashMap<String, List<Person>>();  



下面给出一个示例  
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<String, String> strMap =  new  HashMap<String, String>();  
  14.   
  15.      private  Map<String, Person> perMap =  new  HashMap<String, Person>();  
  16.   
  17.      private  Map<String, String[]> strArryMap =  new  HashMap<String, String[]>();  
  18.   
  19.      private  Map<String, List<Person>> perLstMap =  new  HashMap<String, List<Person>>();  
  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<Person> list= new  ArrayList<Person>();    
  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<Person>();    
  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. <html>  
  2.  <body>  
  3.   <ul>  
  4.    <li>访问Map:<s:property value= "strMap" /></li>  
  5.    <li>访问Map中某个元素:  
  6.     <s:property value= "strMap.first" /> |  
  7.     <s:property value= "strMap['second']" /> |  
  8.     <s:property value= "strMap[\'third\']" />  
  9.    </li>  
  10.    <li>访问Map中所有的key:<s:property value= "strMap.keys" /></li>  
  11.    <li>访问Map中所有的value:<s:property value= "strMap.values" /></li>  
  12.    <li>访问容器的大小:  
  13.     <s:property value= "strMap.size()" /> |  
  14.     <s:property value= "strMap.size" /> //这是map特别的地方   
  15.     </li>  
  16.      
  17.     <li>迭代循环取值,最简单  
  18.      <s:iterator value= "strMap"  id= "entry" >  
  19.        <s:property value= "#entry" />{  
  20.         key: <s:property value= "key" />   
  21.       value:<s:property value= "value" />}|  
  22.        </s:iterator>  
  23.       </li>  
  24.        
  25.     <li>迭代循环取值  
  26.      <s:iterator value= "strMap.keySet()"  id= "key" >  
  27.        <s:property value= "key" />或<s:property value= "#key" />:  
  28.            <s: if  test= "strMap[#key]!=null" >   
  29.             <s:property value= "strMap.get(#key)" /> |  
  30.            </s: if >  
  31.        </s:iterator>  
  32.       </li>  
  33.        
  34.       <li>迭代循环取数组值  
  35.      <s:iterator value= "strMap"  id= "entry" >  
  36.        <s:property value= "#entry" />{  
  37.        <s:property value= "value[0]" />   
  38.        <s:property value= "value[1]" />  |  
  39.        <s:property value= "value[2]" />  }  
  40.        </s:iterator>  
  41.       </li>  
  42.        
  43.       <li>迭代循环取对象值,最直接:  
  44.        <ul>  
  45.        <s:iterator value= "perMap"  id= "entry" >     
  46.         <li>  
  47.           <s:property value= "#entry" />  {  
  48.          ID:<s:property value= "value.ID" />   
  49.          Name:<s:property value= "value.name" />   
  50.          Age:<s:property value= "value.age" />  }|  
  51.          </li>  
  52.        </s:iterator>  
  53.        </ul>  
  54.       </li>  
  55.        
  56.       <li>迭代循环取对象的属性值  
  57.     <s:iterator value= "perMap.keySet()"  id= "key" >  
  58.           <s:property value= "#key" />:  
  59.            <s:iterator value= "perMap.get(#key)" >  
  60.                <s:property value= "ID" />  
  61.                <s:property value= "name" />  
  62.                <s:property value= "phone.name" />  
  63.            </s:iterator>|  
  64.       </s:iterator>  
  65.       </li>  
  66.        
  67.       <li>稍复杂的迭代  
  68.        <s:iterator value= "perLstMap"  id= "entry" >    
  69.         <s:set name= "total"  value= "#entry.value.size" />    
  70.         <s:iterator value= "#entry.value"  status= "s" >    
  71.            <s: if  test= "#s.first" >  
  72.             <s:property value= "#entry.key" />:共${total}条  
  73.            </s: if >   {  
  74.            <s:property value= "ID" />  |  
  75.            <s:property value= "name" />   |  
  76.            <s:property value= "age" />  
  77.             };  
  78.         </s:iterator>    
  79.      </s:iterator>   
  80.    </li>  
  81.    </ul>  
  82.  </body>  
  83. </html>  


 

struts2 遍历Map的多种方法


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论