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
}
}
<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循环
- for循环用struts2的bean标签实现
- Struts2标签实现for循环
- Struts2标签如何实现For循环 像JSTL's <c:forEach begin="..." end="..." ...> 中的用法
- Struts2标签实现for循环
- Struts2标签实现for循环
- struts2 counter循环标签的使用 实现for循环
- Struts2标签实现for循环
- Struts2标签实现for循环
- Struts2标签实现for循环【select】
- 【j2ee spring】19、Struts2标签如何实现For循环
- Struts2标签实现for循环
- struts2 标签 实现 for循环
- Struts2标签实现for循环
- Struts2标签实现for循环
- struts2标签实现for循环
- struts2标签实现金额格式化输出
- Struts2 <s:iterator> 标签实现 for 循环式 循环控制
- struts2如何实现select标签和doubleselect标签
- struts2标签实现两个值相乘