`
sonyfe25cp
  • 浏览: 204887 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2 分页代码

 
阅读更多
分页模块在参考完无数个版本之后总算自己做出一个自己的版本了...

Pager类:
package bit.dlde.marx.util;

import java.math.*;

public class NewPager {
    private int totalRows; //总行数
    private int pageSize = 10; //每页显示的行数
    private int currentPage; //当前页号
    private int totalPages; //总页数
    private int startRow; //当前页在数据库中的起始行
    
    public NewPager() {
    }
    
    /**默认每页10个
     * @param _totalRows
     */
    public NewPager(int _totalRows) {
        totalRows = _totalRows;
        totalPages=totalRows/pageSize;
//        System.out.println("总共的页数:"+totalPages);
        int mod=totalRows%pageSize;
        if(mod>0){
            totalPages++;
        }
        currentPage = 1;
        startRow = 0;
    }
    
    
    /**可自定义每页显示多少数
     * @param _totalRows
     * @param _pageSize
     */
    public NewPager(int _totalRows, int _pageSize) {
		totalRows = _totalRows;
		pageSize = _pageSize;
		totalPages = totalRows / pageSize;
		// System.out.println("总共的页数:"+totalPages);
		int mod = totalRows % pageSize;
		if (mod > 0) {
			totalPages++;
		}
		currentPage = 1;
		startRow = 0;
	}
    
   
    public void first() {
        currentPage = 1;
        startRow = 0;
    }
    public void previous() {
        if (currentPage == 1) {
            return;
        }
        currentPage--;
        startRow = (currentPage - 1) * pageSize;
    }
    public void next() {
        if (currentPage < totalPages) {
            currentPage++;
        }
        startRow = (currentPage - 1) * pageSize;
    }
    public void last() {
        currentPage = totalPages;
        startRow = (currentPage - 1) * pageSize;
    }
    public void refresh(int _currentPage) {
        currentPage = _currentPage;
        if (currentPage > totalPages) {
            last();
        }
    }
    
    
    
    
    
    
    
    public int getStartRow() {
        return startRow;
    }
    public int getTotalPages() {
        return totalPages;
    }
    public int getCurrentPage() {
        return currentPage;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setTotalRows(int totalRows) {
        this.totalRows = totalRows;
    }
    public void setStartRow(int startRow) {
        this.startRow = startRow;
    }
    public void setTotalPages(int totalPages) {
        this.totalPages = totalPages;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getTotalRows() {
        return totalRows;
    }
}


PageService 类:
package bit.dlde.marx.util;

public class NewPagerService {
	/** 
	 * 功能描述:使用默认参数的
	 * <br>输入:
	 * <br>输出:
	 * <br>创建日期:Nov 6, 2008
	*/
	public NewPager getPager(String currentPage,String pagerMethod,int totalRows) {
        //    定义pager对象,用于传到页面
		NewPager pager = new NewPager(totalRows);
//		System.out.println("执行到getPager了");
        //    如果当前页号为空,表示为首次查询该页
        //    如果不为空,则刷新pager对象,输入当前页号等信息
        if (currentPage != null) {
            pager.refresh(Integer.parseInt(currentPage));
//            System.out.println("确认完当前的currentPage");
        }else{
//        	currentPage="1";
        	pager.refresh(1);
        }
        //    获取当前执行的方法,首页,前一页,后一页,尾页。
//        System.out.println("当前要执行的页面动作为:"+pagerMethod);
        if (pagerMethod != null) {
            if (pagerMethod.equals("first")) {
                pager.first();
            } else if (pagerMethod.equals("previous")) {
                pager.previous();
            } else if (pagerMethod.equals("next")) {
                pager.next();
            } else if (pagerMethod.equals("last")) {
                pager.last();
            }
        }else{
        	pager.first();
        }
        return pager;
    }
	/** 
	 * 功能描述:可自定义每页显示书目的
	 * <br>输入:
	 * <br>输出:
	 * <br>创建日期:Nov 6, 2008
	*/
	public NewPager getPager(String currentPage,String pagerMethod,int totalRows,int pageSize) {
        //    定义pager对象,用于传到页面
		NewPager pager = new NewPager(totalRows,pageSize);
//		System.out.println("执行到getPager了");
        //    如果当前页号为空,表示为首次查询该页
        //    如果不为空,则刷新pager对象,输入当前页号等信息
        if (currentPage != null) {
            pager.refresh(Integer.parseInt(currentPage));
//            System.out.println("确认完当前的currentPage");
        }else{
//        	currentPage="1";
        	pager.refresh(1);
        }
        //    获取当前执行的方法,首页,前一页,后一页,尾页。
//        System.out.println("当前要执行的页面动作为:"+pagerMethod);
        if (pagerMethod != null) {
            if (pagerMethod.equals("first")) {
                pager.first();
            } else if (pagerMethod.equals("previous")) {
                pager.previous();
            } else if (pagerMethod.equals("next")) {
                pager.next();
            } else if (pagerMethod.equals("last")) {
                pager.last();
            }
        }else{
        	pager.first();
        }
        return pager;
    }

}



调用示例:
/** 
	 * 功能描述:前台列表
	 * <br>输入:
	 * <br>输出:
	 * <br>创建日期:Nov 6, 2008
	*/
	public String ExpListForFront() throws Exception {
		int totalRow = expServ.getTotalRowsNum();
		System.out.println(totalRow+" :totalRow");
		pager = pagerService.getPager(this.getCurrentPage(), this
				.getPagerMethod(), totalRow,36);//前台页面一页36个
		this.setCurrentPage(String.valueOf(pager.getCurrentPage()));
		this.setTotalRows(String.valueOf(totalRow));
		availableItems = expServ.getRows(pager.getPageSize(), pager.getStartRow());
		System.out.println("准备显示专家列表");
		List<Experts> explistemp = new ArrayList<Experts>();
		for (Experts es : availableItems) {
			es.setName(CharacterTrans.trans8859_1ToGBK(es.getName()));
				es.setResume(CharacterTrans.trans8859_1ToGBK(es.getResume()));
				es.setPhoto(CharacterTrans.trans8859_1ToGBK(es.getPhoto()));
				es.setEditor(CharacterTrans.trans8859_1ToGBK(es.getEditor()));
				es.getExpertType().setTempname(CharacterTrans.trans8859_1ToGBK(es.getExpertType().getName()));
			explistemp.add(es);
		}
		this.setItEx(explistemp.iterator());
		System.out.println("显示专家列表完毕");
		return SUCCESS;
	}


页面上设置:
<div id="pageflip">
				共
				<s:property value="totalRows" />
				行&nbsp; 第
				<s:property value="currentPage" />
				页&nbsp; 共
				<s:property value="pager.getTotalPages()" />
				页&nbsp;
				<a
					href="<s:url value="expListForFront.action">
               			 <s:param name="currentPage" value="currentPage"/>
               			 <s:param name="pagerMethod" value="'first'"/>
                    </s:url>">首页</a>
				<a
					href="<s:url value="expListForFront.action">
               			 <s:param name="currentPage" value="currentPage"/>
               			 <s:param name="pagerMethod" value="'previous'"/>
           			 </s:url>">上一页</a>
				<a
					href="<s:url value="expListForFront.action">
               			 <s:param name="currentPage" value="currentPage"/>
              			 <s:param name="pagerMethod" value="'next'"/>
           			 </s:url>">下一页</a>
				<a
					href="<s:url value="expListForFront.action">
               			 <s:param name="currentPage" value="currentPage"/>
              			  <s:param name="pagerMethod" value="'last'"/>
            		</s:url>">尾页</a>
			</div>


这样就OK了...

虽然显示的比较老土....可满足需求就行了...继续要就怎么显示一串数字的那种分页..
分享到:
评论
3 楼 qq224 2011-09-29  
[img][/img][size=xx-small][/size][align=left][/align]
2 楼 sonyfe25cp 2008-12-29  
zjyyaini 写道

可以 能提供整个项目代码?我把你这个COPY进去报错。。。。 zhang.jun@chinasoftinc.com

项目代码不能提供.
哪儿出错?
1 楼 zjyyaini 2008-12-29  
可以 能提供整个项目代码?我把你这个COPY进去报错。。。。
zhang.jun@chinasoftinc.com

相关推荐

    hibernate+struts2分页代码

    【hibernate+struts2分页代码】是关于如何在Java Web开发中结合Hibernate ORM框架和Struts2 MVC框架实现数据分页的功能。在Web应用程序中,分页是提高用户体验的重要手段,它允许用户逐步浏览大量数据,而无需一次性...

    struts2分页代码的示例

    下面是我用Struts2做的一个分页显示实例,基本的思路是:把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库...

    STRUTS2+HIBERNATE详细的分页实现代码详细的分页实现代码

    下面是一个简化的示例代码片段,展示了如何在Struts2和Hibernate中实现分页功能: ```java // PageTool类定义 public class PageTool { private int pageNum; // 当前页码 private int pageSize; // 每页显示记录...

    struts2增删改查,struts2分页查询

    在探讨Struts2框架下的增删改查以及分页查询功能时,我们首先需要理解Struts2框架本身。Struts2是Apache软件基金会的一个开源Web应用框架,它继承了Struts1的一些特性,并在此基础上进行了大量的改进和扩展,提供了...

    Struts2自定义分页标签

    通过自定义分页标签,Struts2开发者能够轻松实现定制化分页,并保持代码的整洁和可维护性。这种方式避免了在多个JSP页面中重复编写分页逻辑,提高了代码复用性,同时降低了出错的可能性。 总之,本资源提供的Struts...

    Struts2分页源码技术的应用

    Struts2分页源码技术是Web开发中一个重要的实践,尤其是在处理大数据量时,能够有效地提高用户体验,避免一次性加载过多数据导致页面响应慢。在本文中,我们将深入探讨Struts2分页技术的实现原理、应用方法以及与...

    struts2结合easyui实现增删改分页排序

    ### Struts2 结合 EasyUI 实现增删改分页排序 #### 一、概述 在Web开发领域,Struts2 和 EasyUI 是两个非常重要的框架和技术。Struts2 是一款基于MVC模式的Java Web应用程序框架,它帮助开发者构建灵活、可扩展的...

    Struts2 分页实现

    在提供的"InterlibLog"文件中,可能包含了实现这个分页功能的具体代码示例,包括Action类、数据库查询逻辑、Struts2配置文件以及对应的JSP页面。通过分析和学习这些代码,你可以更深入地理解Struts2的分页实现过程。...

    struts2分页效果第二种

    本文将详细介绍Struts2实现分页效果的第二种方法。 在Struts2中,实现分页通常涉及以下几个关键步骤: 1. **模型(Model)**:首先,我们需要一个实体类来存储待分页的数据,例如`User`。然后,创建一个`PageBean`类...

    经典struts2分页方法 JAVA_WEB必备分页 源码

    经典Struts2分页方法是Java Web开发者需要掌握的核心技能之一。 分页的实现通常涉及到以下几个关键知识点: 1. **Action类**:在Struts2中,Action类是处理用户请求的中心。为了实现分页,我们需要创建一个包含...

    Struts2分页

    Struts2实现分页功能,代码完整简洁易懂,可以直接拿去使用,欢迎拍砖

    struts2实现分页

    ### Struts2 实现分页及 `&lt;s:bean&gt;` 标签详解 #### 一、Struts2 分页概述 在 Java Web 开发中,为了提高用户体验并减轻服务器负担,通常采用分页技术来展示数据。Struts2 框架提供了一套强大的工具和标签库来帮助...

    Struts2分页-自定义标签-类似百度分页

    Struts2分页是Web开发中的一个重要概念,它主要用于处理大量数据时,避免一次性加载所有数据导致页面响应慢或者浏览器崩溃。在这个场景中,我们提到的是使用自定义标签实现类似于百度分页的效果,这是一种常见的用户...

    用struts2的分页代码

    在本程序中,"用Struts2的分页代码"是实现数据分页显示的一个关键功能,它允许用户分批查看大量数据,提高用户体验并减轻服务器负载。 分页技术通常涉及以下几个核心概念: 1. **分页查询**:在数据库中,我们并不...

    struts1.2实现的简单分页代码

    本示例是关于如何在Struts1.2框架下实现简单的分页功能,这对于处理大量数据并提高用户体验至关重要。分页允许用户逐页浏览内容,而不是一次性加载所有数据,从而减轻服务器负担,提升页面加载速度。 首先,我们要...

    struts分页源代码

    在这个"Struts分页源代码"中,我们可以深入学习如何在Struts应用中实现高效、灵活的分页功能。 首先,理解分页的基本原理是必要的。分页是将大量数据分成若干小部分,每次只加载一部分到页面上,用户可以通过点击...

    使用struts实现分页

    Struts 是一个经典的Java Web开发框架,它遵循MVC(Model-View-Controller)设计模式,使得开发者可以更有序地组织代码,提高开发效率。在Web应用中,特别是在处理大量数据时,分页功能是非常常见且重要的。它可以...

    基于struts2 自定义标签 分页

    在这个基于Struts2的自定义分页标签的实践中,我们将深入探讨如何创建、配置和使用自定义标签来实现数据的分页展示,同时与Oracle数据库进行交互。 首先,理解分页的基本概念至关重要。分页是将大量数据分成小块,...

    freemarker_struts2分页

    本篇文章将深入探讨如何在Struts2框架下结合FreeMarker实现分页功能,帮助开发者更高效地处理大数据量的展示问题。 首先,了解分页的基本原理。分页是用来解决一次性加载大量数据导致页面加载过慢或内存压力过大的...

    使用 struts2实现分页

    本篇文章将详细讲解如何利用Struts2和JSP实现前端的分页功能。 分页是Web应用中常见的需求,尤其在处理大量数据时,能够帮助用户更高效地浏览和管理数据。Struts2通过Action类、结果类型配置以及拦截器等机制,可以...

Global site tag (gtag.js) - Google Analytics