概述
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循环的实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复