感悟:但是不建议使用这种方法,按照MVC框架的思想 ,应该把业务更多放在后台。前台尽量只进行数据展示。

转自:http://blog.csdn.net/guandajian/article/details/7334756

在struts2及webwork中要实现如:

1 for(int i=0;i<10;i++){
2        //内容
3 }

还是需要一些技巧的,我在做分页条的时候,要输出页码,怪了,用迭代器不行的,看了一下struts2的文档及例子也没发现用计数器的地方,偶然看了一下bea标签,哦,原来如此....

1 <s:bean name="org.apache.struts2.util.Counter" id="counter">
2    <s:param name="first" value="1" />  //起始值
3    <s:param name="last" value="10" />  //循环控制变量
4    <s:iterator>
5      counter:<s:property/>   //内容
6    </s:iterator>
7 </s:bean>

其中first属性指定循环起始值,last指定循环终止值,其它相关属性可以查看org.apache.struts2.util.Counter类源码。在下面迭代器中输入循环的当前值,即:current

干脆把源码贴出来吧!

-----------------------------------------------------------------------------------------------------------------------------

  1 package org.apache.struts2.util;
  2
  3 import java.io.Serializable;
  4
  5
  6 /**
  7 * A bean that can be used to keep track of a counter.
  8 * <p/>
  9 * Since it is an Iterator it can be used by the iterator tag
 10 *
 11 */
 12 public class Counter implements java.util.Iterator, Serializable {
 13
 14      private static final long serialVersionUID = 2796965884308060179L;
 15
 16      boolean wrap = false;
 17
 18      // Attributes ----------------------------------------------------
 19      long first = 1;
 20      long current = first;
 21      long interval = 1;
 22      long last = -1;
 23
 24
 25      public void setAdd(long addition) {
 26          current += addition;
 27      }
 28
 29      public void setCurrent(long current) {
 30          this.current = current;
 31      }
 32
 33      public long getCurrent() {
 34          return current;
 35      }
 36
 37      public void setFirst(long first) {
 38          this.first = first;
 39          current = first;
 40      }
 41
 42      public long getFirst() {
 43          return first;
 44      }
 45
 46      public void setInterval(long interval) {
 47          this.interval = interval;
 48      }
 49
 50      public long getInterval() {
 51          return interval;
 52      }
 53
 54      public void setLast(long last) {
 55          this.last = last;
 56      }
 57
 58      public long getLast() {
 59          return last;
 60      }
 61
 62      // Public --------------------------------------------------------
 63      public long getNext() {
 64          long next = current;
 65          current += interval;
 66
 67          if (wrap && (current > last)) {
 68              current -= ((1 + last) - first);
 69          }
 70
 71          return next;
 72      }
 73
 74      public long getPrevious() {
 75          current -= interval;
 76
 77          if (wrap && (current < first)) {
 78              current += (last - first + 1);
 79          }
 80
 81          return current;
 82      }
 83
 84      public void setWrap(boolean wrap) {
 85          this.wrap = wrap;
 86      }
 87
 88      public boolean isWrap() {
 89          return wrap;
 90      }
 91
 92      public boolean hasNext() {
 93          return ((last == -1) || wrap) ? true : (current <= last);
 94      }
 95
 96      public Object next() {
 97          return new Long(getNext());
 98      }
 99
100      public void remove() {
101          // Do nothing
102
103   }
104
105 }

//项目中的应用

<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}&nbsp;</td><td>${rs.f_coursename}&nbsp;</td><td>${rs.f_term}&nbsp;</td><td>${rs.f_week}&nbsp;</td><td>${rs.f_credit}&nbsp;</td><td>${rs.f_courseStart}&nbsp;</td><td>${rs.f_courseEnd}&nbsp;</td><td><a href="">查看</a> <a href="">删除</a></td></tr></s:iterator>
</s:bean>

转载于:https://www.cnblogs.com/x_wukong/p/3651849.html

Struts2标签实现for循环相关推荐

  1. struts2标签详解

    struts2标签讲解 要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:<%@ taglib prefix="s" uri="/struts-t ...

  2. Struts2标签库常用标签(转)

    struts2标签讲解 要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:<%@ taglib prefix="s" uri="/struts-t ...

  3. Struts2标签库和OGNL

    学习内容 Struts 2标签库 OGNL 能力目标 熟练使用Struts 2常用标签 熟练使用OGNL 本章简介 前面我们编写的案例使用的都是HTML标签,这些标签并不能很好的与Struts 2框架 ...

  4. 使用Struts2标签

    Struts2提供了大量标签帮助开发表现层页面,Struts2标签库与Struts1相比,不依赖于任何表现层技术,大部分可以在各种表现层技术中使用,包括最常用的jsp页面,也可以在Velocity和F ...

  5. Struts2 标签库

    Struts 2标签简介 Struts 标签分类 使用Struts标签库 OGNL OGNL集合运算 OGNL表达式对静态属性的访问 控制标签 if/else if/else iterator gen ...

  6. struts2 标签中read-only=true 和disabled的区别

    struts2 标签中read-only=true 和disabled的区别 都不能对内容进行修改,区别在readonly提交的时候还会有该字段,但是disabled会在提交的时候忽略该字段 转载于: ...

  7. java struts2标签库 常用标签

    基本概述 对于一个MVC框架而言,重点是实现两部分:业务逻辑控制器部分和视图页面部分.Struts2作为一个优秀的MVC框架,也把重点放在了这两部分上.控制器主要由Action来提供支持,而视图则是由 ...

  8. Struts2标签 逻辑标签和UI标签

    效果如下图: 先配置struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE s ...

  9. Struts2框架--学习笔记(下):OGNL表达式、值栈操作、拦截器、struts2标签、文件上传

    一.OGNL概述:OGNL是一种表达式 (1)在struts2中操作值栈数据. (2)一般把ognl在struts2中操作,和struts2标签一起使用操作值栈. (3)ognl不是strut2的一部 ...

最新文章

  1. linux下的文件和文件夹的权限问题
  2. 2018机器阅读理解技术竞赛,奇点机智获第一名
  3. 【转】Eclipse的Debug调试技巧大全
  4. (uC/OS-II学习笔记)关于共享资源与信号量
  5. mongodb 存储过程 java_Java面试题分享-MongoDB
  6. 全球及中国航空发动机市场动态前景及十四五项目专项调研报告2021-2027年版
  7. dreamweaver 疑问
  8. Let‘s Play Curling 二分,lower_bound(2020.12.南京)
  9. mysql联合索引的数据结构
  10. bzoj 4573: [Zjoi2016]大森林
  11. VSCode 实时预览HTML网页效果 - Live Server插件
  12. 【Pre蓝桥杯嵌入式】移植LCD程序+建立工程+LCD程序分析
  13. Basic concepts behind Web Audio API
  14. 【面试那点儿事】囧,分机号的故事
  15. springBoot 注入@Slf4j,框架中的方法无法调用。。。
  16. Java学习(21-25天, 树与二叉树)
  17. python 大智慧 dll 下单_大智慧股票池自动下单教程,大智慧预警信号自动写入到文本插件...
  18. 国际贸易的价格表示方法贸易术语
  19. 提升页面转化率100招
  20. Facebook的23岁创始人

热门文章

  1. 快速排序算法的优化思路总结
  2. 小米5x对标OV,突围荣耀,能否成功?
  3. Linux高级管理之ACL(访问控制列表)实战应用
  4. #翻译#将像素绘制到屏幕上
  5. 二、SpringBoot配置文件讲解
  6. spring-chapter02-IoC Container
  7. Vue 中实现双向绑定的 4 种方法
  8. java 继承 String类
  9. 批量注册windows下的动态库
  10. HTML 5 画布