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 ...
随机推荐
- apache-tomcat-5.5.35.搭建实战
tar xf apache-tomcat-5.5.35.tar -C /usr/local/ 需要安装JDK支持,可借鉴:http://www.cnblogs.com/zhoulf/archive/2 ...
- Java统计数据库表中记录数
public static int count(String txyl_table) {// 获取用户数量 int i = 0;// Store_Information Connection con ...
- Linux SSH安全策略限制IP登录方法(转)
本文介绍了Linux SSH安全策略限制IP登录的两种方法.具体如下: 方法一: 首先需要限制登录的ip(或者如果需要自己本地登录,查看最后登录ip即可) Vim /etc/hosts.allow 输 ...
- c/c++指针
指针主要分: 指向单一的某个对象/变量, 用于多态或函数指针, 这个不难 - 一级指针 其次是指向数组, 用来操作/遍历数组元素 - 一级/二级指针 指向数组的一级指针很简单了: p指向的是数组的元素 ...
- 我的电脑右下角的日期也不见了只剩下时间,Win7系统,请问是什么原因啊?
A:今天是2013/10/10,日期变为八位,宽度就不够了,把任务栏拉宽就好了 Q:win7 任务栏时间区可以拉宽吗?使之显示日期等 A:你的任务栏锁定了的,右键单击任务栏-锁定任务栏前面的勾去掉,鼠 ...
- Integer Inquiry
Integer Inquiry Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Sub ...
- unity3d 日志捕捉
public class Test : MonoBehaviour { public string output = ""; public string stack = " ...
- mongo链接报错:couldn't connect to server 127.0.0.1:27017 (127.0.0.1)
angela@angeladeMacBook-Air:/data/db$mongo MongoDB shell version: 2.6.1 connecting to: test 2014-06-0 ...
- Python win7下 django-admin.py startproject mysite命令没有创建mysite?
解决方案 解决:这个命令在XP下正常(我没试过),我用的win7,无法创建.这属于django的一个bug. 方法是:修改注册表中 HKEY_CLASSES_ROOT/Applications/pyt ...
- BZOJ 2818
2818:GCD Description 给定整数$N$,求$1\le x,y\le N$且$\gcd{x,y}$为素数的数对$(x,y)$有多少对. Input $N$ Output RT Samp ...