`
自动放假
  • 浏览: 25009 次
文章分类
社区版块
存档分类
最新评论

Struts2标签实现for循环 分页 选择第几页

 
阅读更多

在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

干脆把源码贴出来吧!

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

/*
* $Id: Counter.java 471756 2006-11-06 15:01:43Z husted $
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
*http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
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:set name="number" value="#parameters.num" /> //num是从前一个页面中传递过来的参数
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="2" />
<s:param name="last" value="%{#number}" />
<s:iterator>
<s:property/>

</s:iterator>
</s:bean>



自己加的

<option ><s:property /></option> 可选框

分享到:
评论

相关推荐

    C标签实现的分页

    实现C标签分页的具体步骤可能包括以下几点: 1. 在JSP页面中,使用C标签的`forEach`循环遍历服务层返回的分页数据,并展示每个卡片的信息。 2. 使用C标签的条件判断语句,如`&lt;c:if&gt;`和`&lt;c:choose&gt;`,来处理页码导航...

    struts2数字版海量分页

    6. **分页组件**:为了简化开发,可以使用第三方库,如DisplayTag或Struts2的插件,它们提供现成的分页标签,能够自动处理分页逻辑和样式,使页面更加美观。 7. **优化**:在处理海量数据时,要注意避免一次性加载...

    基于struts功能比较全的分页

    在这个基于Struts的分页实现中,我们可以探讨以下几个核心知识点: 1. **分页原理**:分页是大型数据集在Web应用中展示的重要方式,它可以避免一次性加载大量数据导致的性能问题。基本的分页原理包括设置每页显示...

    struts和jsf分页

    在Struts中实现分页主要涉及到以下几个步骤: 1. **模型层(Model)**:创建一个业务对象,比如一个`User`类,其中包含对数据库查询的方法,如`getUsersByPage(int pageNum, int pageSize)`,用于获取指定页码和每页...

    struts分页2

    本文将详细介绍如何在Struts框架中实现查询结果的分页显示,并重点讲解`logic:iterate`标签在分页中的应用。 #### 二、Struts框架简介 Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web应用框架,...

    分页功能实现

    在提供的部分JSP代码中,可以看到使用了`&lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;`来引入JSTL核心标签库,这将用于循环显示分页数据。 #### 四、分页的优化与扩展 除了基本的分页逻辑,...

    达内培训机密资料_struts2_day02(2)

    根据提供的文件信息,我们可以归纳出以下相关...这些内容不仅涵盖了Struts2的基础概念,还涉及到了OGNL表达式的使用、ValueStack的管理以及分页功能的具体实现方法等,对于学习和实践Struts2都是非常有价值的参考资料。

    java web 分页 设计

    这里使用了Struts2的`&lt;s:iterator&gt;`标签来遍历查询结果列表`recordList`,并在循环体内显示每一条记录。 2. **页码导航**: ```html ${num} ``` 该段代码展示了页码导航的功能。`beginPageIndex`和`...

    strust_page.rar_Action!_action分页

    Struts分页技术是Java Web开发中的一个...实践中,我们还可以结合缓存技术提高性能,或者使用第三方库如MyBatis的PageHelper简化分页实现。理解并熟练掌握这些知识,有助于在实际开发中构建高效、易维护的分页功能。

    Jsp分页

    在JSP中实现分页,通常涉及以下几个关键步骤: 1. 数据获取:首先,你需要从数据库或其他数据源获取数据。这通常通过Java Servlet或DAO层完成,然后将数据传递到JSP页面。 2. 计算总页数:根据每页显示的数据量和...

    最新Java面试宝典pdf版

    8、说说struts1与struts2的区别。 121 9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、...

    JAVA面试宝典2010

    8、说说struts1与struts2的区别。 121 9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、...

    Java面试宝典-经典

    8、说说struts1与struts2的区别。 121 9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、...

    java面试题大全(2012版)

    8、说说struts1与struts2的区别。 121 9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、...

    Java面试宝典2012版

    8、说说struts1与struts2的区别。 121 9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11...

    java面试宝典2012

    8、说说struts1与struts2的区别。 132 9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 133 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 133 11、...

    Java面试宝典2012新版

    8、说说struts1与struts2的区别。 121 9、hibernate中的update()和saveOrUpdate()的区别,session的load()和get()的区别。 122 10、简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件. 122 11、...

Global site tag (gtag.js) - Google Analytics