`
happy100583
  • 浏览: 124150 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

比较实用的SSH分页

    博客分类:
  • J2EE
阅读更多

//分页实体bean

public class Page {
 /** imply if the page has previous page */
    private boolean hasPrePage;
  
    /** imply if the page has next page */
    private boolean hasNextPage;
      
    /** the number of every page */
    private int everyPage;
  
    /** the total page number */
    private int totalPage;
   
    /** the total record number */
    private int totalRecords;
      
    /** the number of current page */
    private int currentPage;
  
    /** the begin index of the records by the current query */
    private int beginIndex;
  
  
    /** The default constructor */
    public Page(){
      
    }
  
    /** construct the page by everyPage
     * @param everyPage
     * */
    public Page(int everyPage){
        this.everyPage = everyPage;
    }
  
    /** The whole constructor */
    public Page(boolean hasPrePage, boolean hasNextPage,
                    int everyPage, int totalPage, int totalRecords,
                    int currentPage, int beginIndex) {
        this.hasPrePage = hasPrePage;
        this.hasNextPage = hasNextPage;
        this.everyPage = everyPage;
        this.totalPage = totalPage;
        this.totalRecords = totalRecords;
        this.currentPage = currentPage;
        this.beginIndex = beginIndex;
    }

    /**
     * @return
     * Returns the beginIndex.
     */
    public int getBeginIndex() {
        return beginIndex;
    }
  
    /**
     * @param beginIndex
     * The beginIndex to set.
     */
    public void setBeginIndex(int beginIndex) {
        this.beginIndex = beginIndex;
    }
  
    /**
     * @return
     * Returns the currentPage.
     */
    public int getCurrentPage() {
        return currentPage;
    }
  
    /**
     * @param currentPage
     * The currentPage to set.
     */
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
  
    /**
     * @return
     * Returns the everyPage.
     */
    public int getEveryPage() {
        return everyPage;
    }
  
    /**
     * @param everyPage
     * The everyPage to set.
     */
    public void setEveryPage(int everyPage) {
        this.everyPage = everyPage;
    }
  
    /**
     * @return
     * Returns the hasNextPage.
     */
    public boolean getHasNextPage() {
        return hasNextPage;
    }
  
    /**
     * @param hasNextPage
     * The hasNextPage to set.
     */
    public void setHasNextPage(boolean hasNextPage) {
        this.hasNextPage = hasNextPage;
    }
  
    /**
     * @return
     * Returns the hasPrePage.
     */
    public boolean getHasPrePage() {
        return hasPrePage;
    }
  
    /**
     * @param hasPrePage
     * The hasPrePage to set.
     */
    public void setHasPrePage(boolean hasPrePage) {
        this.hasPrePage = hasPrePage;
    }
  
    /**
     * @return Returns the totalPage.
     *
     */
    public int getTotalPage() {
        return totalPage;
    }
  
    /**
     * @param totalPage
     * The totalPage to set.
     */
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
   
    /**
     * @param totalRecords
     * The totalRecords to set.
     */
    public void settotalRecords(int totalRecords)
    {
        this.totalRecords = totalRecords;
    }
    /**
     * @return Returns the totalRecords.
     *
     */
    public int getTotalRecords()
    {
        return this.totalRecords;
    }

}

 

//分页操作类

public class PageUtil {
 /**
     * Use the origin page to create a new page
     * @param page
     * @param totalRecords
     * @return
     */
    public static Page createPage(Page page, int totalRecords){
        return createPage(page.getEveryPage(), page.getCurrentPage(), totalRecords);
    }
  
    /**
     * the basic page utils not including exception handler
     * @param everyPage
     * @param currentPage
     * @param totalRecords
     * @return page
     */
    public static Page createPage(int everyPage, int currentPage, int totalRecords){
        everyPage = getEveryPage(everyPage);
        currentPage = getCurrentPage(currentPage);
      
        int totalPage = getTotalPage(everyPage, totalRecords);
        boolean hasNextPage = hasNextPage(currentPage, totalPage);
        boolean hasPrePage = hasPrePage(currentPage);
        int  beginIndex = getBeginIndex(everyPage, currentPage);
        if(currentPage >= totalPage) {
         beginIndex = getBeginIndex(everyPage, totalPage);   
         currentPage = totalPage;
        }
        return new Page(hasPrePage, hasNextPage,
                                everyPage, totalPage, totalRecords,
                                currentPage, beginIndex);
    }
  
    private static int getEveryPage(int everyPage){
        return everyPage == 0 ? 10 : everyPage;
    }
  
    private static int getCurrentPage(int currentPage){
        return currentPage == 0 ? 1 : currentPage;
    }
  
    private static int getBeginIndex(int everyPage, int currentPage){
        return (currentPage - 1) * everyPage;
    }
      
    private static int getTotalPage(int everyPage, int totalRecords){
        int totalPage = 0;
              
        if(totalRecords % everyPage == 0)
            totalPage = totalRecords / everyPage;
        else
            totalPage = totalRecords / everyPage + 1 ;
              
        return totalPage;
    }
  
    private static boolean hasPrePage(int currentPage){
        return currentPage == 1 ? false : true;
    }
  
    private static boolean hasNextPage(int currentPage, int totalPage){
        return currentPage == totalPage || totalPage == 0 ? false : true;
    }

}

分享到:
评论

相关推荐

    SSH通用分页组件 SSH分页

    SSH分页 分页 通用分页 struts2分页

    SSH 通用分页插件

    SSH分页插件的核心功能是将数据库查询结果按照一定的页码和每页记录数进行切割,使得用户可以逐页浏览,提高用户体验并减轻服务器负担。这个插件通常会集成到SSH框架中,通过简单的配置和调用,就能实现复杂的数据...

    实用SSH分页DAO

    直接导入后 对DAO在spring注入sessionFactory,然后在Action中可以进行简单的调用,测试测试例子都在代码main函数写好了,希望对大家有帮助

    强大ssh分页实现

    好强大的ssh分页,封装的很好,适合初学者研究下,可以更快帮助初学者掌握分页机制,学起来不是很容易,但是当你学会了就豁然开朗,其他的分页直接可以藐视了,哈。。。我就是这样学过来的 有相关教程:...

    SSH分页(很实用)

    SSH分页技术是Java开发中一个非常实用的功能,尤其在处理大数据量的Web应用时,它能够有效地提高用户体验,避免一次性加载过多数据导致的性能问题。SSH是指Spring、Struts和Hibernate这三大开源框架的组合,它们在...

    struts hibernate spring 分页ssh分页

    SSH分页则是指在使用这三个框架开发应用程序时,实现数据展示分页的一种技术手段。 **Struts** 是一个基于MVC设计模式的Web应用框架,主要用于控制视图与模型之间的交互。它提供了一种组织应用逻辑的方式,使得...

    SSH分页技术详解与实例

    SSH分页技术是Java Web开发中一种常见的数据处理方法,主要应用于大数据量的展示场景,如用户在浏览商品列表或论坛帖子时,通过分页来避免一次性加载所有数据导致的性能问题和用户体验下降。SSH指的是Spring、Struts...

    SSH分页_完整例子

    在这个"SSH分页_完整例子"中,我们将深入探讨如何在SSH框架下实现数据的分页显示。 分页是Web应用程序中常见的功能,它能帮助用户更有效地浏览和处理大量数据。SSH框架通过整合Spring的事务管理和Hibernate的ORM...

    ssh分页经典代码

    在SSH框架中实现分页功能是一项常见的任务,尤其是在处理大量数据时,分页能有效地提高用户体验,避免一次性加载过多数据导致页面响应慢。以下将详细介绍如何在SSH框架下创建分页程序,并探讨其优缺点。 首先,理解...

    SSH分页完整实例

    在本实例中,我们将深入探讨SSH框架下的分页功能实现。 首先,让我们从Struts开始,它是SSH中的用户界面层,负责处理HTTP请求并返回相应的视图。在Struts中,我们可以创建一个Action类来处理分页请求。这个Action类...

    ssh 分页 控件 (分页插件)

    总的来说,"ssh 分页 控件 (分页插件)"是一个便捷的工具,能够帮助SSH框架的开发者在JSP页面中轻松实现数据分页功能,提升项目开发效率和用户体验。通过对分页插件的配置和使用,我们可以更专注于业务逻辑,而不用...

    SSH+Mysql无刷新分页实例

    在这个"SSH+Mysql无刷新分页实例"中,我们将探讨如何利用SSH框架与MySQL数据库实现网页的无刷新分页功能,从而提高用户体验。 首先,SSH框架中的Spring负责控制层,它提供依赖注入(Dependency Injection,DI)和...

    很好的一个SSH分页小例子

    在这个“很好的SSH分页小例子”中,我们将深入探讨SSH框架如何实现数据的分页显示,这对于处理大数据量的展示至关重要。 首先,让我们了解SSH框架的各自角色: 1. **Struts2**:这是一个MVC(Model-View-...

    SSH分页组件

    在这个场景中,"SSH分页组件"指的是在SSH框架下实现数据分页功能的组件。 分页是Web应用中常见的需求,特别是在处理大数据量时,为了提高用户体验和系统性能,需要将结果集分割成多个小部分(页)进行显示。SSH分页...

    SSH分页查询方法

    "SSH分页查询方法"是指在使用Struts2、Hibernate和Spring三大Java开发框架集成开发时实现的分页功能。 首先,Struts2是一个MVC(Model-View-Controller)框架,它负责处理用户请求并将其转发到相应的控制器,进而...

    ssh分页显示实例代码

    这个一个关于String+Spring+Hibernate框架,可以分页显示的实例代码.

    ssh分页完整实例数据库mysql

    总结起来,这个压缩包提供的SSH分页实例数据库MySQL连接,旨在帮助初学者掌握SSH框架在实际项目中的应用,尤其是如何利用SSH实现数据的CRUD操作和分页功能,对于提升Java Web开发技能具有很大价值。通过实践这个实例...

    ssh 分页组件,含使用示例

    在这个特定的上下文中,"ssh 分页组件"指的是在SSH框架中实现数据分页的功能。数据分页在大型应用中尤为重要,因为它能有效地管理大量数据,避免一次性加载过多数据导致性能下降。 分页组件通常由两部分组成:前端...

    SSH实现分页实例

    在这个"SSH实现分页实例"中,我们将深入探讨如何在SSH框架下实现数据的分页显示。 首先,Struts2作为MVC框架,负责处理HTTP请求并调度控制层逻辑。它通过Action类来封装业务逻辑,并通过配置ActionMapping定义请求...

    SSH分页技术

    按照 文档中的的内容轻松实现SSH分页,文档中包含 了 分页bean。直接复制即可使用。有详细的类和方法说明。

Global site tag (gtag.js) - Google Analytics