我是靠谱客的博主 单纯蜡烛,最近开发中收集的这篇文章主要介绍struts2 标签 for循环的实现,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

Java代码
<s:bean name= "org.apache.struts2.util.Counter"  id= "counter" >    
  <s:param name="first"  value= "1"  />    
  <s:param name="last"  value= "10"  />    
  <s:iterator>    
    counter:<s:property value="current-1" />    
  </s:iterator>    
</s:bean>    

其中first属性指定循环起始值,last指定循环终止值,其它相关属性可以查看org.apache.struts2.util.Counter类源码。在下面迭代器中输入循环的当前值,即:current-1

Counter类源码
/*  
 * $Id: Counter.java 471756 2006-11-06 15:01:43Z husted $  
 *  
 * Licensed to the Apache Software Foundation (ASF) under one  
 * or more contributor license agreements.  See the NOTICE file  
 * distributed with this work for additional information  
 * regarding copyright ownership.  The ASF licenses this file  
 * to you under the Apache License, Version 2.0 (the  
 * "License"); you may not use this file except in compliance  
 * with the License.  You may obtain a copy of the License at  
 *  
 *  http://www.apache.org/licenses/LICENSE-2.0  
 *  
 * Unless required by applicable law or agreed to in writing,  
 * software distributed under the License is distributed on an  
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY  
 * KIND, either express or implied.  See the License for the  
 * specific language governing permissions and limitations  
 * under the License.  
 */   
package  org.apache.struts2.util;  
  
import  java.io.Serializable;  
  
  
/**  
 * A bean that can be used to keep track of a counter.  
 * <p/>  
 * Since it is an Iterator it can be used by the iterator tag  
 *  
 */   
public   class  Counter  implements  java.util.Iterator, Serializable {  
  
    private   static   final   long  serialVersionUID = 2796965884308060179L;  
  
    boolean  wrap =  false ;  
  
    // Attributes —————————————————-   
    long  first =  1 ;  
    long  current = first;  
    long  interval =  1 ;  
    long  last = - 1 ;  
  
  
    public   void  setAdd( long  addition) {  
        current += addition;  
    }  
  
    public   void  setCurrent( long  current) {  
        this .current = current;  
    }  
  
    public   long  getCurrent() {  
        return  current;  
    }  
  
    public   void  setFirst( long  first) {  
        this .first = first;  
        current = first;  
    }  
  
    public   long  getFirst() {  
        return  first;  
    }  
  
    public   void  setInterval( long  interval) {  
        this .interval = interval;  
    }  
  
    public   long  getInterval() {  
        return  interval;  
    }  
  
    public   void  setLast( long  last) {  
        this .last = last;  
    }  
  
    public   long  getLast() {  
        return  last;  
    }  
  
    // Public ——————————————————–   
    public   long  getNext() {  
        long  next = current;  
        current += interval;  
  
        if  (wrap && (current > last)) {  
            current -= ((1  + last) - first);  
        }  
  
        return  next;  
    }  
  
    public   long  getPrevious() {  
        current -= interval;  
  
        if  (wrap && (current < first)) {  
            current += (last - first + 1 );  
        }  
  
        return  current;  
    }  
  
    public   void  setWrap( boolean  wrap) {  
        this .wrap = wrap;  
    }  
  
    public   boolean  isWrap() {  
        return  wrap;  
    }  
  
    public   boolean  hasNext() {  
        return  ((last == - 1 ) || wrap) ?  true  : (current <= last);  
    }  
  
    public  Object next() {  
        return   new  Long(getNext());  
    }  
  
    public   void  remove() {  
        // Do nothing   
    }  

最后

以上就是单纯蜡烛为你收集整理的struts2 标签 for循环的实现的全部内容,希望文章能够帮你解决struts2 标签 for循环的实现所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部