struts iterator的用法

  1. 1、输出session中的值   
  2. a. <s:property value="#session['key']"/>  
  3. b. ${sessionScope.key}   
  4.   
  5. 2、获取session中的值后判断   
  6. <s:if test="#session['key']==null">  
  7.   
  8. 3、输出Action中的属性值   
  9. <s:property value="property"/>  
  10.   
  11. 4、输出国际化文件中的值   
  12. a. <s:text name="key"/>  
  13. b. ${getText("key")}   
  14.   
  15. 5、输出Action中的消息   
  16. <s:actionmessage />  
  17.   
  18. 6、输出Action中的错误   
  19. <s:actionerror/>  
  20.   
  21. 7、迭代输出集合   
  22. <s:iterator id="book" value="books" status="index">  
  23.   
  24.      <!---输出当前元素的属性-->  
  25.      <s:property value="property"/>  
  26.   
  27.      <!---输出当前迭代元素的索引-->  
  28.      <s:property value="#index.index"/>  
  29.   
  30.      <!---输出当前迭代了几个元素-->  
  31.      <s:property value="#index.count"/>   
  32.   
  33.       <!---返回当前迭代元素的索引是否为奇数-->  
  34.      <s:property value="#index.odd"/>   
  35.   
  36.      <!---返回当前迭代元素的索引是否为偶数-->  
  37.      <s:property value="#index.event"/>  
  38.   
  39.      <!---返回当前元素是否为第一个-->  
  40.      <s:property value="#index.first"/>  
  41.   
  42.      <!---返回当前元素是否为最后一个-->  
  43.      <s:property value="#index.last"/>  
  44.   
  45. </s:iterator>  
  46.   
  47. 8、定义页面变量   
  48. <!---将分页Bean的属性放入Stack Context-->  
  49. <s:set name="count" value="%{pager.totalPages}"/>  
  50.   
  51. <!---利用Struts2标签访问-->  
  52. <s:property value="#count"/>  
  53.   
  54. <!---利用OGNL表达式访问-->  
  55. ${pageScope.count }   
  56.   
  57. <!---利用Java代码访问-->  
  58. <%      
  59.       Object obj = pageContext.getAttribute("count");       
  60.       int mycount = Integer.parseInt(obj.toString());   
  61.       for(int i =0;i<mycount;i++){   
  62.             out.print(i+1);   
  63.       }   
  64. %>  
  1. struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:
    s:iterator 标签有3个属性:
        value:被迭代的集合
        id   :指定集合里面的元素的id
        status 迭代元素的索引

    1:jsp页面定义元素写法 数组或list
    1. <s:iterator value="{'1','2','3','4','5'}" id='number'>
    2.      <s:property value='number'/>A
    3. </s:iterator>
    1. 打印结果为: 1A2A3A4A5A

      2:索引的用法
      如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
      int getCount()返回当前迭代了几个元素
      int getIndex()返回当前元素索引
      boolean isEven()当然的索引是否偶数
      boolean isFirst()当前是否第一个元素
      boolean isLast()
      boolean isOdd()当前元素索引是否奇数
    1. <s:iterator value="{'a','b','c'}" id='char' status='st'>
    2.      <s:if test="#st.Even">
    3.          现在的索引是奇数为:<s:property value='#st.index'/>
    4.      </s:if>
    5.      当前元素值:<s:property value='char'/>
    6. </s:iterator>
    1. 3:遍历map
      value可以直接定义为:
      1. value="#{"1":"a","2":"b"}"
    2. 每个元素以都好隔开。元素之间的key和value 冒号隔开
      value也可以是数据栈里面的java.util.Map对象
      遍历写法如下:
    1. <s:iterator value="map" id="id" status="st">
    2.       key : <s:property value='key'/>
    3.       value:<s:property vlaue='value'/>
    4. </s:iterator>
    1. 当然key 和value 都可以使java 的 Object

      3:遍历数据栈.简单的List类,
      List<Attr>
      class Attr{String attrName;String getAttrName(){return "123";}}
    1. <s:iterator value="label" id="id">
    2.      <s:property value="#id.attrName" />
    3. </s:iterator>
    1. 当然value 还可以写成 value="%{label}" label可以有.操作
      label的属性List 可以写成value="%{label.list}" 相当于:getLabel().getList();

      4:遍历2个list;
      List<AttrName> attrN {color,size,style}
      List<AttrValue> attrV {red,20,gay}
      这2个list的元素是一一对应的,一个attrN对应一个attrV
    1. <s:iterator value="%{attrN }" id="id"   status="status">
    2. index     is : <s:property value='status.index'/>
    3. attrName is : <s:property value='id'/> or <s:property value='%{id}'/>
    4. attrName is : <s:property value='%{attrV[#status.index]}'/>
    5. </s:iterator>  
  1. <s:iterator value="{'1','2','3','4','5'}" id='number'>
  2.      <s:property value='number'/>A
  3. </s:iterator>
  1. 打印结果为: 1A2A3A4A5A

    2:索引的用法
    如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
    int getCount()返回当前迭代了几个元素
    int getIndex()返回当前元素索引
    boolean isEven()当然的索引是否偶数
    boolean isFirst()当前是否第一个元素
    boolean isLast()
    boolean isOdd()当前元素索引是否奇数
  1. <s:iterator value="{'a','b','c'}" id='char' status='st'>
  2.      <s:if test="#st.Even">
  3.          现在的索引是奇数为:<s:property value='#st.index'/>
  4.      </s:if>
  5.      当前元素值:<s:property value='char'/>
  6. </s:iterator>
  1. 3:遍历map
    value可以直接定义为:
    1. value="#{"1":"a","2":"b"}"
  2. 每个元素以都好隔开。元素之间的key和value 冒号隔开
    value也可以是数据栈里面的java.util.Map对象
    遍历写法如下:
  1. <s:iterator value="map" id="id" status="st">
  2.       key : <s:property value='key'/>
  3.       value:<s:property vlaue='value'/>
  4. </s:iterator>
  1. 当然key 和value 都可以使java 的 Object

    3:遍历数据栈.简单的List类,
    List<Attr>
    class Attr{String attrName;String getAttrName(){return "123";}}
  1. <s:iterator value="label" id="id">
  2.      <s:property value="#id.attrName" />
  3. </s:iterator>
  1. 当然value 还可以写成 value="%{label}" label可以有.操作
    label的属性List 可以写成value="%{label.list}" 相当于:getLabel().getList();

    4:遍历2个list;
    List<AttrName> attrN {color,size,style}
    List<AttrValue> attrV {red,20,gay}
    这2个list的元素是一一对应的,一个attrN对应一个attrV
  1. <s:iterator value="%{attrN }" id="id"   status="status">
  2. index     is : <s:property value='status.index'/>
  3. attrName is : <s:property value='id'/> or <s:property value='%{id}'/>
  4. attrName is : <s:property value='%{attrV[#status.index]}'/>
  5. </s:iterator> 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值