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

//项目中的应用

  1. <s:bean name="org.apache.struts2.util.Counter" id="counter">
  2. <s:param name="first" value="1" />
  3. <s:param name="last" value="#request.num" />
  4. <s:iterator>
  5. <tr bgcolor="ffffff" align="center">
  6. <td>${rs.f_courseId}&nbsp;</td>
  7. <td>${rs.f_coursename}&nbsp;</td>
  8. <td>${rs.f_term}&nbsp;</td>
  9. <td>${rs.f_week}&nbsp;</td>
  10. <td>${rs.f_credit}&nbsp;</td>
  11. <td>${rs.f_courseStart}&nbsp;</td>
  12. <td>${rs.f_courseEnd}&nbsp;</td>
  13. <td><a href="">查看</a> <a href="">删除</a></td>
  14. </tr>
  15. </s:iterator>
  16. </s:bean>

Struts2标签实现for循环的更多相关文章

  1. Struts2标签简介

    Struts2标签简介 Struts2标签的优势 标签库简化了用户对标签的使用 结合OGNL使用,对于集合.对象的访问功能非常强大 提供可扩展的主题.模板支持,极大简化了视图页面的编写 不依赖任何表现 ...

  2. JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总

    一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出.       1,JSTL标签总结: a).JSTL标签有什么用?          JSTL是由JCP(Java Commu ...

  3. struts2标签整理

    在JSP2.1中#被用作了JSP EL(表达式语言)的特殊记好,所以对OGNL的使用可能导致问题,   一个简单的方法是禁用JSP2.1的EL特性,这需要修改web.xml文件:   Java代码   ...

  4. struts2标签详解

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

  5. struts2标签学习笔记(一)

    struts2所有标签都定义在一个s标签库里.虽然struts2把所有的标签都定义在URI为"/struts-tags"空间下,但依然可以对struts2标签进行简单的分类. 1. ...

  6. Struts2 标签库详解2

    Struts2标签库 包括: OGNL Struts2标签分类 控制标签 :(if, elseif,else, iterator, append, merge, generator, subset, ...

  7. Struts2 标签库详解

    Struts2标签库 包括: OGNL Struts2标签分类 控制标签 :(if, elseif,else, iterator, append, merge, generator, subset, ...

  8. struts2标签使用详解

    Struts2常用标签总结一 介绍1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码 ...

  9. struts2标签(转)

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

随机推荐

  1. spring bean id和bean name的区别

    今天在分析问题时发现一个大家平时都不太注意的spring 配置问题,发出来分享下: 首先澄清一个概念: 同名bean:多个bean 有相同的 name 或者 id,称之为同名bean <bean ...

  2. ASP.NET WebForm中用async/await实现异步出人意料的简单

    1. 在.aspx中添加异步标记 <%@ Page Language="C#" Async="true"%> 2. 在.aspx.cs或者.ascx ...

  3. html5摇一摇[转]

    写在前面 年底了,有些公司会出一个摇奖的活动,今天在家没事就搜了一下这方面的资料. 原文地址:http://www.cnblogs.com/waitingbar/p/4682215.html 测试 效 ...

  4. msmms (二) sms与mms 简述!

    mms 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . MMS是英文缩写,它可以是Membership Management System的缩写,中文译名为会员管理系统.也可以是M ...

  5. shell 删除文件下的* (copy).jpg备份文件

    shell编程中,  在for, while循环中为什么不用(), {} 不是没有; 而是因为(), {}做了其他用途: (): 执行命令组, 注意这个命令组是新开一个子shell中执行, 因此,括号 ...

  6. 一步一步教你将普通的wifi路由器变为智能广告路由器

    一步一步教你将普通的wifi路由器变为智能广告路由器 相信大家对WiFi智能广告路由器已经不再陌生了,现在很多公共WiFi上网,都需要登录并且验证,这也就是WiFi广告路由器的最重要的功能.大致就是下 ...

  7. CKEditor使用笔记

    相关资源 1. 首页地址:http://ckeditor.com/ 2. 下载地址:http://ckeditor.com/download 3. SDK地址:http://sdk.ckeditor. ...

  8. ios开发者到真机测试

    ios就是矫情, 没事搞那么多步奏, 搞得我都不会弄了, 不懈努力后还是弄好了, 总结一下, 避免新人走弯路. 苹果的脾气就是这样, 只能慢慢学了 1.  生成CSR (开发者证书认证请求) 打开钥匙 ...

  9. ruby Errors & Exceptions

    When you first started coding, errors were probably the last thing you wanted to see. After all, it’ ...

  10. [codeforces 528]A. Glass Carving

    [codeforces 528]A. Glass Carving 试题描述 Leonid wants to become a glass carver (the person who creates ...