Struts2中iterator标签遍历map总结

  1. publicclassMapActionextendsActionSupport
  2. {
  3. privateMap<String,String>map;
  4. privateMap<String,Student>studentMap;
  5. privateMap<String,String[]>arrayMap;
  6. privateMap<String,List<Student>>listMap;
  7. publicStringtestMap()
  8. {
  9. map=newHashMap<String,String>();
  10. map.put("1","one");
  11. studentMap=newHashMap<String,Student>();
  12. studentMap.put("student1",newStudent(newLong(1),"20034140201","张三1","男",25));
  13. arrayMap=newHashMap<String,String[]>();
  14. arrayMap.put("arr1",newString[]{"1","2003401","leejie","male","20"});
  15. listMap=newHashMap<String,List<Student>>();
  16. List<Student>list1=newArrayList<Student>();
  17. list1.add(newStudent(newLong(1),"20034140201","张三1","男",25));
  18. list1.add(newStudent(newLong(2),"20034140202","张三2","男",25));
  19. list1.add(newStudent(newLong(3),"20034140203","张三3","男",25));
  20. listMap.put("class1",list1);
  21. returnSUCCESS;
  22. }
  23. publicMap<String,String>getMap(){
  24. returnmap;
  25. }
  26. publicvoidsetMap(Map<String,String>map){
  27. this.map=map;
  28. }
  29. publicMap<String,Student>getStudentMap(){
  30. returnstudentMap;
  31. }
  32. publicvoidsetStudentMap(Map<String,Student>studentMap){
  33. this.studentMap=studentMap;
  34. }

  35. publicMap<String,String[]>getArrayMap(){
  36. returnarrayMap;
  37. }

  38. publicvoidsetArrayMap(Map<String,String[]>arrayMap){
  39. this.arrayMap=arrayMap;
  40. }
  41. publicMap<String,List<Student>>getListMap(){
  42. returnlistMap;
  43. }

  44. publicvoidsetListMap(Map<String,List<Student>>listMap){
  45. this.listMap=listMap;
  46. }
  47. }

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

关键字使用: List<String> days ["Monday","Thursday","Friday","Sunday"]
使用 top 关键字:使用top 指代当前迭代元素,可以为对象
<s:iterator value="days"> 
<s:if test="top!='Monday'"> 
<s:property /> 
</s:if> 
</s:iterator> 
使用 last / first 关键字:#of.last用于判断当前迭代到的元素是否为最后一个元素,iterator 标签中的status属性代表当前迭代的位置;
<s:iterator value="aTs" status="of">  
     <s:if test="#of.last"><br/></s:if>  
     <s:iterator value="top">  
     	<s:property />  
     </s:iterator>  
 </s:iterator>  
使用 odd / even 关键字:odd关键字用来判断当前迭代位置是否为奇数行
<s:iterator value="days" status="offset">  
    <s:else>  
        <s:if test="#offset.odd==true">  
            <li style="color: red" mce_style="color: red"><s:property /></li>  
        </s:if>  
        <s:else>  
            <li><s:property /></li>  
        </s:else>  
    </s:else>  
</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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值