您的位置:首页 > 编程语言 > Java开发

struts2 标签 for循环的实现

2009-08-07 16:32 477 查看
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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: