Struts2中iterator标签遍历map总结

来源:互联网 发布:centos nginx 启动 编辑:程序博客网 时间:2024/05/16 09:14
  1. public class MapAction extends ActionSupport  
  2. {  
  3.   
  4.     private Map<String,String> map;  
  5.      
  6.     private Map<String,Student> studentMap;  
  7.       
  8.     private Map<String,String[]> arrayMap;  
  9.       
  10.     private Map<String,List<Student>> listMap;  
  11.   
  12.     public String testMap()  
  13.     {  
  14.         map=new HashMap<String,String>();  
  15.         map.put("1""one");  
  16.           
  17.         studentMap=new HashMap<String,Student>();  
  18.         studentMap.put("student1",new Student(new Long(1),"20034140201","张三1","男",25));  
  19.           
  20.         arrayMap=new HashMap<String,String[]>();  
  21.         arrayMap.put("arr1"new String[]{"1","2003401","leejie","male","20"});            
  22.                    
  23.         listMap=new HashMap<String,List<Student>>();  
  24.           
  25.         List<Student> list1=new ArrayList<Student>();  
  26.         list1.add(new Student(new Long(1),"20034140201","张三1","男",25));  
  27.         list1.add(new Student(new Long(2),"20034140202","张三2","男",25));  
  28.         list1.add(new Student(new Long(3),"20034140203","张三3","男",25));  
  29.         listMap.put("class1", list1);  
  30.               
  31.         return SUCCESS;  
  32.           
  33.     }  
  34.      
  35.     public Map<String, String> getMap() {  
  36.         return map;  
  37.     }  
  38.   
  39.     public void setMap(Map<String, String> map) {  
  40.         this.map = map;  
  41.     }  
  42.       
  43.     public Map<String, Student> getStudentMap() {  
  44.         return studentMap;  
  45.     }  
  46.   
  47.     public void setStudentMap(Map<String, Student> studentMap) {  
  48.         this.studentMap = studentMap;  
  49.     }  

  50.     public Map<String, String[]> getArrayMap() {  
  51.         return arrayMap;  
  52.     }  

  53.     public void setArrayMap(Map<String, String[]> arrayMap) {  
  54.         this.arrayMap = arrayMap;  
  55.     }  
  56.   
  57.     public Map<String, List<Student>> getListMap() {  
  58.         return listMap;  
  59.     }  

  60.     public void setListMap(Map<String, List<Student>> listMap) {  
  61.         this.listMap = listMap;  
  62.     }        
  63. }  

  1.  <%@ page contentType="text/html;charset=UTF-8" %>  
  2. <%@ taglib prefix="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:iterator value="map" id="column">  
  10.    <s:property value="#column"/><br>  
  11.    key: <s:property value="key"/><br>  
  12.    value:<s:property value="value"/><br>  
  13.   </s:iterator>  
  14.    
  15.    
  16.   <b>2.map中的value为Student对象</b>  
  17.   <table border="1" width="50%"  cellspacing="0" cellpadding="0">  
  18.     <tr>  
  19.       <td>key=value</td>  
  20.       <td>ID</td>    
  21.       <td>sex</td>  
  22.       <td>age</td>  
  23.     </tr>  
  24.     <s:iterator value="studentMap" id="column">  
  25.     <tr>  
  26.      <td><s:property value="#column"/></td>  
  27.      <td><s:property value="value.id"/></td>  
  28.      <td><s:property value="value.sex"/></td>  
  29.      <td><s:property value="value.age"/></td>  
  30.     </tr>  
  31.     </s:iterator>  
  32.   </table>  
  33.   <p>  
  34.     
  35.     
  36.   <b>3.map中的value为String数组</b>  
  37.   <table border="1" width="50%"  cellspacing="0" cellpadding="0">  
  38.     <tr>  
  39.       <td>key=value</td>  
  40.       <td>ID</td>  
  41.       <td>num</td>  
  42.       <td>name</td>  
  43.       <td>sex</td>  
  44.       <td>age</td>  
  45.     </tr>  
  46.     <s:iterator value="arrayMap" id="column">  
  47.     <tr>  
  48.      <td><s:property value="#column"/></td>  
  49.      <td><s:property value="value[0]"/></td>  
  50.      <td><s:property value="value[1]"/></td>  
  51.      <td><s:property value="value[2]"/></td>  
  52.      <td><s:property value="value[3]"/></td>  
  53.      <td><s:property value="value[4]"/></td>  
  54.     </tr>  
  55.     </s:iterator>  
  56.   </table>  
  57.   <p>  
  58.   <b>4.map中的value为list集合</b>  
  59.   <table border="1" width="50%"  cellspacing="0" cellpadding="0">  
  60.     <tr>  
  61.       <td>class</td>  
  62.       <td>ID</td>  
  63.       <td>num</td>  
  64.       <td>name</td>  
  65.       <td>sex</td>  
  66.       <td>age</td>  
  67.     </tr>  
  68.       
  69.    <s:iterator value="listMap" id="column">  
  70.      <s:set name="total" value="#column.value.size"/>  
  71.      <s:iterator value="#column.value" status="s">  
  72.       <tr>  
  73.         <s:if test="#s.first"><td rowspan="${total}"><s:property value="#column.key"/></td></s:if>  
  74.         <td><s:property value="id"/></td>  
  75.         <td><s:property value="num"/></td>  
  76.         <td><s:property value="name"/></td>  
  77.         <td><s:property value="sex"/></td>  
  78.         <td><s:property value="age"/></td>  
  79.       </tr>  
  80.      </s:iterator>  
  81.   </s:iterator>  
  82.  </table>  
  83.     
  84.     
  85. </body>  
  86. </html>  

关键字使用: List<String> days ["Monday","Thursday","Friday","Sunday"]
使用top 关键字:使用top 指代当前迭代元素,可以为对象
[html] view plaincopy
  1. <s:iterator value="days">   
  2. <s:if test="top!='Monday'">   
  3. <s:property />   
  4. </s:if>   
  5. </s:iterator>   
使用 last / first 关键字:#of.last用于判断当前迭代到的元素是否为最后一个元素,iterator 标签中的status属性代表当前迭代的位置;
[html] view plaincopy
  1. <s:iterator value="aTs" status="of">    
  2.      <s:if test="#of.last"><br/></s:if>    
  3.      <s:iterator value="top">    
  4.      <span style="white-space:pre"> </span><s:property />    
  5.      </s:iterator>    
  6.  </s:iterator>    
使用 odd / even 关键字:odd关键字用来判断当前迭代位置是否为奇数行
[html] view plaincopy
  1. <s:iterator value="days" status="offset">    
  2.     <s:else>    
  3.         <s:if test="#offset.odd==true">    
  4.             <li style="color: red" mce_style="color: red"><s:property /></li>    
  5.         </s:if>    
  6.         <s:else>    
  7.             <li><s:property /></li>    
  8.         </s:else>    
  9.     </s:else>    
  10. </s:iterator>    

总结下,当声明iterator的status属性时,通过#statusName.method可以使用以下方法:
even : boolean - 如果当前迭代位置是偶数返回true
odd : boolean - 如果当前迭代位置是奇数返回true
count : int - 返回当前迭代位置的计数(从1开始)
index : int - 返回当前迭代位置的编号(从0开始)
first : boolean - 如果当前迭代位置是第一位时返回true
last : boolean - 如果当前迭代位置是最后一位时返回true
modulus(operand : int) : int - 返回当前计数(从1开始)与指定操作数的模数
0 0
原创粉丝点击