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 ...
随机推荐
- gcc/g++ 参数
-static 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么 动态连接库,就可以运行. -share 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
- MySQL Cluster(MySQL 集群) 初试(转)
作/译者:叶金荣(imysql#imysql.com>),来源:http://imysql.com,欢迎转载. 作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请 ...
- 单机安装TFS(转载)
一.安装操作系统:windows server 2003 + Sp2具体步骤: 1.安装windows server 2003时选用工作组(默认为workgroup).由于在工作组环境中部署,因此使用 ...
- ios中的几种多线程实现
iOS 支持多个层次的多线程编程,层次越高的抽象程度越高,使用起来也越方便,也是苹果最推荐使用的方法.下面根据抽象层次从低到高依次列出iOS所支持的多线程编程范式:1, Thread;2, Cocoa ...
- linux ls和 ll 命令
工作中用到 ll -alrth|tail -30 命令 所以再来回顾一下 ls 命令 linux ls和 ll 命令 ll 命令列出的信息更加详细,有时间,是否可读写等信息 ll命令和 ...
- ICMP Internet控制报文协议
ICMP是(Internet Control Message Protocol)Internet控制报文协议.它是TCP/IP协议族的一个子协议,用于在IP主机.路由器之间传递控制消息.控制消息是指网 ...
- win7 vmware 无法使用usb
只有在win7下才会有这个问题,在xp下没有. 原因是: win7的主机上禁用了vmare usb arbitration(仲裁) service. 在主机上启用这个服务 重启即可. 如果无法启用vm ...
- Swift学习笔记
swift 面向过程 数据结构 3.1 常量和变量 定义常量和变量 let a = 1 var b = 2 显式定义和隐式定义 无需指定强类型,编译器会自动根据初始值推断出其类型.与c#相似.如果在定 ...
- 如何用sql批量删除一个id段内的dedecms文章?
之前因为ytkah批量添加了dedecms文章,数量有些多,后面出现问题了,想要删除一部分织梦文章,后台一篇篇删,删到手软(相关内容:修改dedecms关键词到手软),于是就想到了sql数据库操作!那 ...
- editplus快捷键大全之editplus编辑快捷键
前面我们说了editplus快捷键大全之editplus文件快捷键和editplus快捷键大全之editplus光标快捷键,这里我们讲一下editplus快捷键大全之editplus编辑快捷键 删除光 ...