Struts2标签实现for循环
感悟:但是不建议使用这种方法,按照MVC框架的思想 ,应该把业务更多放在后台。前台尽量只进行数据展示。
转自:http://blog.csdn.net/guandajian/article/details/7334756
在struts2及webwork中要实现如:
for(int i=0;i<10;i++){
//内容
}
还是需要一些技巧的,我在做分页条的时候,要输出页码,怪了,用迭代器不行的,看了一下struts2的文档及例子也没发现用计数器的地方,偶然看了一下bea标签,哦,原来如此....
<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/> //内容
</s:iterator>
</s:bean>
其中first属性指定循环起始值,last指定循环终止值,其它相关属性可以查看org.apache.struts2.util.Counter类源码。在下面迭代器中输入循环的当前值,即:current
干脆把源码贴出来吧!
-----------------------------------------------------------------------------------------------------------------------------
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="#request.num" />
<s:iterator>
<tr bgcolor="ffffff" align="center">
<td>${rs.f_courseId} </td>
<td>${rs.f_coursename} </td>
<td>${rs.f_term} </td>
<td>${rs.f_week} </td>
<td>${rs.f_credit} </td>
<td>${rs.f_courseStart} </td>
<td>${rs.f_courseEnd} </td>
<td><a href="">查看</a> <a href="">删除</a></td>
</tr>
</s:iterator>
</s:bean>
Struts2标签实现for循环的更多相关文章
- Struts2标签简介
Struts2标签简介 Struts2标签的优势 标签库简化了用户对标签的使用 结合OGNL使用,对于集合.对象的访问功能非常强大 提供可扩展的主题.模板支持,极大简化了视图页面的编写 不依赖任何表现 ...
- JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总
一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出. 1,JSTL标签总结: a).JSTL标签有什么用? JSTL是由JCP(Java Commu ...
- struts2标签整理
在JSP2.1中#被用作了JSP EL(表达式语言)的特殊记好,所以对OGNL的使用可能导致问题, 一个简单的方法是禁用JSP2.1的EL特性,这需要修改web.xml文件: Java代码 ...
- struts2标签详解
struts2标签讲解 要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:<%@ taglib prefix="s" uri="/struts-t ...
- struts2标签学习笔记(一)
struts2所有标签都定义在一个s标签库里.虽然struts2把所有的标签都定义在URI为"/struts-tags"空间下,但依然可以对struts2标签进行简单的分类. 1. ...
- Struts2 标签库详解2
Struts2标签库 包括: OGNL Struts2标签分类 控制标签 :(if, elseif,else, iterator, append, merge, generator, subset, ...
- Struts2 标签库详解
Struts2标签库 包括: OGNL Struts2标签分类 控制标签 :(if, elseif,else, iterator, append, merge, generator, subset, ...
- struts2标签使用详解
Struts2常用标签总结一 介绍1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码 ...
- struts2标签(转)
Struts2 标签库讲解 要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可: <%@ taglib prefix="s" uri="/str ...
随机推荐
- Web Service 元数据注释(JSR 181)
Web Service 元数据注释(JSR 181) @WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值 ...
- serialVersionUID要注意以下几点:
今天在使用eclipse开发的时候,遇到一个warning,看到warning我总觉得不爽,使用自动修复后,发现eclipse在代码中加入了“private static final long ser ...
- Ioc注解
注解: 添加注解时,需要添加context的相关 <?xml version="1.0" encoding="UTF-8"?> <beans ...
- C# 排序算法记录
class Program { static void Main(string[] args) { , , , , , , , , -, , , }; //假设一个最小的值 ]; ; i < a ...
- linux下防火墙开启某个端口号及防火墙常用命令使用
linux防火墙常用命令 1.永久性生效,重启后不会复原 开启:chkconfigiptables on 关闭:chkconfigiptables off 2.即时生效,重启后复原 重启防火墙 方式一 ...
- [codeforces 241]A. Old Peykan
[codeforces 241]A. Old Peykan 试题描述 There are n cities in the country where the Old Peykan lives. The ...
- hiho一下 第九十六周 数论五·欧拉函数
题目1 : 数论五·欧拉函数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho有时候会用密码写信来互相联系,他们用了一个很大的数当做密钥.小Hi和小Ho约定 ...
- PHP表单验证
<!DOCTYPE html> <html> <head> <title>Test Code</title> </head> & ...
- Java和C#运行速度对比:Java比C#快约3倍
测试条件: Java版本: Java 8, .NET版本:v4.0, Release模式,针对x86平台优化 单线程模式. 测试1:(测试1的代码摘自http://blog.csdn.net/houj ...
- Moebius集群:SQL Server一站式数据平台
一.Moebius集群的架构及原理 1.无共享磁盘架构 Moebius集群采用无共享磁盘架构设计,各个机器可以不连接一个共享的设备,数据可以存储在每个机器自己的存储介质中.这样每个机器就不需要硬件上的 ...