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 ...
随机推荐
- spring bean id和bean name的区别
今天在分析问题时发现一个大家平时都不太注意的spring 配置问题,发出来分享下: 首先澄清一个概念: 同名bean:多个bean 有相同的 name 或者 id,称之为同名bean <bean ...
- ASP.NET WebForm中用async/await实现异步出人意料的简单
1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...
- html5摇一摇[转]
写在前面 年底了,有些公司会出一个摇奖的活动,今天在家没事就搜了一下这方面的资料. 原文地址:http://www.cnblogs.com/waitingbar/p/4682215.html 测试 效 ...
- msmms (二) sms与mms 简述!
mms 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . MMS是英文缩写,它可以是Membership Management System的缩写,中文译名为会员管理系统.也可以是M ...
- shell 删除文件下的* (copy).jpg备份文件
shell编程中, 在for, while循环中为什么不用(), {} 不是没有; 而是因为(), {}做了其他用途: (): 执行命令组, 注意这个命令组是新开一个子shell中执行, 因此,括号 ...
- 一步一步教你将普通的wifi路由器变为智能广告路由器
一步一步教你将普通的wifi路由器变为智能广告路由器 相信大家对WiFi智能广告路由器已经不再陌生了,现在很多公共WiFi上网,都需要登录并且验证,这也就是WiFi广告路由器的最重要的功能.大致就是下 ...
- CKEditor使用笔记
相关资源 1. 首页地址:http://ckeditor.com/ 2. 下载地址:http://ckeditor.com/download 3. SDK地址:http://sdk.ckeditor. ...
- ios开发者到真机测试
ios就是矫情, 没事搞那么多步奏, 搞得我都不会弄了, 不懈努力后还是弄好了, 总结一下, 避免新人走弯路. 苹果的脾气就是这样, 只能慢慢学了 1. 生成CSR (开发者证书认证请求) 打开钥匙 ...
- ruby Errors & Exceptions
When you first started coding, errors were probably the last thing you wanted to see. After all, it’ ...
- [codeforces 528]A. Glass Carving
[codeforces 528]A. Glass Carving 试题描述 Leonid wants to become a glass carver (the person who creates ...