`
bluenemo
  • 浏览: 176407 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2中iterator标签详解

阅读更多

       顾名思义,iterator标签主要用于迭代输出Collection接口的子接口的实现类(如List、Set、Map与数组等)的元素,用value属性指定需要遍历的结合对象。

      其语法格式如下:

      <s:iterator value="集合对象" id="每次迭代的引用" status="迭代状态实例">

           标签体

      </s:iterator>

 

 

      value------>通过OGNL表达式指定一个待迭代的集合对象,如果未指定该属性,默认使用ValueStack栈顶的集合。

      id ---------->指定每次迭代的引用,供标签体内的其他组件调用。

      status----->指定每次迭代状态的引用,若设置了此属性,则每次迭代均会生成一个IteratorStatus实例,IteratorStatus实例提供了几个非常有用的方法供标签体内的其他组件调用:

      1、int getCount()方法:返回目前为止共迭代输出过的元素个数;

      2、int getIndex()方法:返回当前迭代元素的索引号,所谓索引号就是一个从0开始的序号;

      3、boolean isEven()方法:返回当前迭代元素的索引号是否为偶数;

      4、boolean isFirst()方法:返回当前迭代元素是否为第一个元素;

      5、boolean isLast()方法:返回当前迭代元素是否为最后一个元素;

      6、boolean isOdd()方法:返回当前迭代元素的索引号是否为奇数;

 

 

      在action类中,可以测试的类型有:

      1、demoList = new ArrayList();      demoList.add("内容");      有序

      2、hashSet = new HashSet();        hashSet.add("内容");       无序

      3、treeSet = new TreeSet();          treeSet.add("内容");        有序

      4、demoMap = new HashMap();    demoMap.put("内容");      无序

 

      

       在前台jsp页面中示例:

       <s:iterator value="demoList" id="row" status="st">

           <s:property value="#st.count"/>、<s:property value="row"/>

           <s:if test="#st.add">(奇数行)</s:if>

           <s:else>(偶数行)</s:else><br/>

      </s:iterator>

    

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics