`

struts2.0标签应用–for循环的实现

阅读更多
<!--header.php end--> <!--single.php--> <!--loop--> <!--post title--> <!--Post Meta--> <!--content with more link-->
Java代码
  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 value="current-1"/>    
  6.   </s:iterator>    
  7. </s:bean>    

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

Counter类源码
  1. /* 
  2.  * $Id: Counter.java 471756 2006-11-06 15:01:43Z husted $ 
  3.  * 
  4.  * Licensed to the Apache Software Foundation (ASF) under one 
  5.  * or more contributor license agreements.  See the NOTICE file 
  6.  * distributed with this work for additional information 
  7.  * regarding copyright ownership.  The ASF licenses this file 
  8.  * to you under the Apache License, Version 2.0 (the 
  9.  * "License"); you may not use this file except in compliance 
  10.  * with the License.  You may obtain a copy of the License at 
  11.  * 
  12.  *  http://www.apache.org/licenses/LICENSE-2.0 
  13.  * 
  14.  * Unless required by applicable law or agreed to in writing, 
  15.  * software distributed under the License is distributed on an 
  16.  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
  17.  * KIND, either express or implied.  See the License for the 
  18.  * specific language governing permissions and limitations 
  19.  * under the License. 
  20.  */   
  21. package  org.apache.struts2.util;  
  22.   
  23. import  java.io.Serializable;  
  24.   
  25.   
  26. /** 
  27.  * A bean that can be used to keep track of a counter. 
  28.  * <p/> 
  29.  * Since it is an Iterator it can be used by the iterator tag 
  30.  * 
  31.  */   
  32. public   class  Counter  implements  java.util.Iterator, Serializable {  
  33.   
  34.     private static final long serialVersionUID = 2796965884308060179L;  
  35.   
  36.     boolean wrap = false;  
  37.   
  38.     // Attributes —————————————————-  
  39.     long first = 1;  
  40.     long current = first;  
  41.     long interval = 1;  
  42.     long last = -1;  
  43.   
  44.   
  45.     public void setAdd(long addition) {  
  46.         current += addition;  
  47.     }  
  48.   
  49.     public void setCurrent(long current) {  
  50.         this.current = current;  
  51.     }  
  52.   
  53.     public long getCurrent() {  
  54.         return current;  
  55.     }  
  56.   
  57.     public void setFirst(long first) {  
  58.         this.first = first;  
  59.         current = first;  
  60.     }  
  61.   
  62.     public long getFirst() {  
  63.         return first;  
  64.     }  
  65.   
  66.     public void setInterval(long interval) {  
  67.         this.interval = interval;  
  68.     }  
  69.   
  70.     public long getInterval() {  
  71.         return interval;  
  72.     }  
  73.   
  74.     public void setLast(long last) {  
  75.         this.last = last;  
  76.     }  
  77.   
  78.     public long getLast() {  
  79.         return last;  
  80.     }  
  81.   
  82.     // Public ——————————————————–  
  83.     public long getNext() {  
  84.         long next = current;  
  85.         current += interval;  
  86.   
  87.         if (wrap && (current > last)) {  
  88.             current -= ((1 + last) - first);  
  89.         }  
  90.   
  91.         return next;  
  92.     }  
  93.   
  94.     public long getPrevious() {  
  95.         current -= interval;  
  96.   
  97.         if (wrap && (current < first)) {  
  98.             current += (last - first + 1);  
  99.         }  
  100.   
  101.         return current;  
  102.     }  
  103.   
  104.     public void setWrap(boolean wrap) {  
  105.         this.wrap = wrap;  
  106.     }  
  107.   
  108.     public boolean isWrap() {  
  109.         return wrap;  
  110.     }  
  111.   
  112.     public boolean hasNext() {  
  113.         return ((last == -1) || wrap) ? true : (current <= last);  
  114.     }  
  115.   
  116.     public Object next() {  
  117.         return new Long(getNext());  
  118.     }  
  119.   
  120.     public void remove() {  
  121.         // Do nothing  
  122.     }  

分享到:
评论

相关推荐

    struts2.0标签使用源码

    Struts2.0标签的实现主要依赖于TLD(Tag Library Descriptor)文件,这些文件定义了标签的行为和属性。当JSP解析器遇到一个Struts2标签时,会根据TLD找到对应的标签处理类(TagHandler)并实例化,执行其doStartTag...

    jsp中struts2.0标签应用示例

    总结来说,"jsp中struts2.0标签应用示例"这个主题主要关注如何在JSP页面中利用Struts2.0提供的标签进行视图层的构建,通过实际例子展示了`&lt;s:form&gt;`、`&lt;s:textfield&gt;`、`&lt;s:password&gt;`、`&lt;s:select&gt;`等常用标签的...

    struts2.0标签使用

    通过使用Struts2.0标签,开发者可以在不牺牲灵活性的情况下,快速构建出高性能的Web应用程序。 ### Struts2.0标签库概述 Struts2.0标签库包含多种类型的标签,如表单标签、数据展示标签等。每种类型的标签都针对...

    struts2.0中文教程

    04 在Struts 2.0中国际化(i18n)您的应用程序 05 转换器(Converter)——Struts 2.0中的魔术师 06 在Struts 2.0中实现表单数据校验(Validation) 07 Struts 2的基石——拦截器(Interceptor) 08 在Struts 2中实现...

    struts2.0 标签大全

    打开网址:http://www.web-tag.net/all_7_3.htm 就是struts 2.0标签大全 或者下载CHM格式API struts2.0 标签大全,struts2.0 标签大全

    Struts 2.0系列(MAX)

    在Struts 2.0中国际化(i18n)您的应用程序 转换器(Converter)——Struts 2.0中的魔术师 在Struts 2.0中实现表单数据校验(Validation) Struts 2的基石——拦截器(Interceptor) 在Struts 2中实现IoC 在Struts 2...

    Struts2.0视频教程+struts2.0中文教程

    这个"Struts2.0视频教程+struts2.0中文教程"包含的资源旨在帮助学习者深入理解和掌握Struts2.0的核心概念和实际应用。 首先,"struts2.0入门.rar"可能包含了基础的教程内容,涵盖了以下几个关键知识点: 1. **...

    struts2.0常用标签文档

    9. **标签的国际化**:通过`&lt;s:text&gt;`和`&lt;s:label&gt;`标签配合资源文件,可以轻松实现应用的多语言支持。 10. **标签的CSS和JavaScript控制**:Struts2的标签支持CSS类的设置,如`cssClass`属性,以及JavaScript事件...

    struts2.0 应用开发,基本功能全部实现

    这个压缩包文件可能是为了展示一个完整的Struts2.0应用实例,包括从搭建环境到实现基本功能的全过程。 在Struts2.0的应用开发中,首先我们需要理解其核心概念: 1. **Action类**:这是业务逻辑的载体,通常继承自`...

    struts2.0标签详解

    Struts2.0是一个强大的Java Web开发框架,它极大地简化了MVC(Model-View-Controller)应用的构建。在Struts2中,标签库是其核心特性之一,提供了丰富的标签来帮助开发者更加便捷地创建动态网页。本文将深入探讨...

    Struts2.0 入门教程+帮助手册+权威指南+配置文档+标签库+增删改查代码等.rar

    Struts2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了创建企业级Java Web应用的过程。这个压缩包文件提供了丰富的资源,包括入门教程、帮助手册、权威指南、配置文档以及标签库...

    JavaEE源代码 Struts2.0

    JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0JavaEE源代码 Struts2.0...

    struts2.0的特点

    在Struts2.0中,核心概念之一是Action,它被设计为一个简单的POJO(Plain Old Java Object),这使得Action的实现更加灵活和简洁。Action类不再需要继承特定的基类,而是通过配置文件(如struts.xml)来定义其行为。...

    Struts2.0的api

    Struts2.0是Java Web开发中的一个热门框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建动态Web应用程序的强大工具。API文档是理解任何框架核心功能的关键,对于Struts2.0也不例外。让我们深入...

    struts2.0jar包

    这些jar包需添加到项目的类路径中,才能正常运行Struts2.0的应用。开发者还需要理解并配置`struts.xml`或`struts-default.xml`等配置文件,以定义Action、Result以及拦截器链。 总结来说,Struts2.0 jar包是Java ...

    Struts2.0 Jar包

    Struts2支持多语言环境,通过资源包(Properties文件)可以轻松实现应用程序的国际化。 10. **测试支持**: Struts2提供了一套测试工具,使得单元测试和集成测试变得更加简单,有助于确保代码质量。 11. **安全...

    struts2.0标签教程详解资料

    本教程将深入讲解Struts2.0标签的使用,帮助开发者更好地理解和应用这些标签。 一、简介 Struts2的标签库主要分为两大类:控制标签和展示标签。控制标签主要用于处理用户请求和控制流程,而展示标签则专注于生成...

    Struts 2.0

    Struts 2.0 是一个基于 Model-View-Controller (MVC) 设计模式的Java Web应用程序框架。它并非Struts 1的直接升级,而是源自WebWork框架,提供了更强大的特性和灵活性。Struts 2的核心是Action,它是业务逻辑处理的...

    struts 2.0 详细配置

    Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 采用了 MVC(Model-View-Controller)设计模式,将数据模型、...

Global site tag (gtag.js) - Google Analytics