`

一段分页代码PaginationSupport.java

阅读更多
package com.iteye.common.hibernate;

import java.util.LinkedList;
import java.util.List;

public class PaginationSupport ...{

    // ---------------------------------------------------------
    // static variables
    // ---------------------------------------------------------

    // 默认每页显示条数
    public static final int DEFAULT_MAX_PAGE_ITEMS = 10;

    // 默认开始记录条数
    public static final int DEFAULT_OFFSET = 0;

    // 默认显示页码最大数
    public static final int DEFAULT_MAX_INDEX_PAGES = 10;

    // index 为索引页位置, 可以选择 "center", "forward", "half-full"
    public static final String DEFALUT_INDEX = "center";

    // ---------------------------------------------------------
    // memeber variables
    // ---------------------------------------------------------

    // 开始记录条数
    private int offset = 0;

    // 每页显示条数
    private int maxPageItems = DEFAULT_MAX_PAGE_ITEMS;

    // 显示页码最大数
    private int maxIndexPages = DEFAULT_MAX_INDEX_PAGES;

    // 总记录数
    private int totalCount;

    // 返回结果集
    private List items = new LinkedList();

    // index 为索引页位置, 可以选择 "center", "forward", "half-full"
    private String index = DEFALUT_INDEX;

    private int[] indexes = new int[0];

    public PaginationSupport() ...{
        setMaxIndexPages(DEFAULT_MAX_INDEX_PAGES);
        setTotalCount(0);
        setOffset(0);
        setItems(new LinkedList());
    }

    public PaginationSupport(List items, int totalCount) ...{
        setMaxPageItems(DEFAULT_MAX_PAGE_ITEMS);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(0);
    }

    public PaginationSupport(List items, int totalCount, int offset) ...{
        setMaxPageItems(DEFAULT_MAX_PAGE_ITEMS);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(offset);
    }

    public PaginationSupport(List items, int totalCount, int offset,
            int maxPageItems) ...{
        setMaxPageItems(maxPageItems);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(offset);
    }

    public PaginationSupport(List items, int totalCount, int offset,
            int maxPageItems, int maxIndexPages, String index) ...{
        setMaxPageItems(maxPageItems);
        setTotalCount(totalCount);
        setItems(items);
        setOffset(offset);
        setMaxIndexPages(maxIndexPages);
        setIndex(index);
    }

    public List getItems() ...{
        return items;
    }

    public void setItems(List items) ...{
        if (items == null) ...{
            this.items = new LinkedList();
        } else ...{
            this.items = items;
        }
    }

    public int getMaxPageItems() ...{
        return maxPageItems;
    }

    public void setMaxPageItems(int maxPageItems) ...{
        this.maxPageItems = maxPageItems;
    }

    public int getTotalCount() ...{
        return totalCount;
    }

    public void setTotalCount(int totalCount) ...{
        if (totalCount > 0) ...{
            this.totalCount = totalCount;
            int count = totalCount / maxPageItems;
            if (totalCount % maxPageItems > 0) ...{
                count++;
            }
            indexes = new int[count];
            for (int i = 0; i < count; i++) ...{
                indexes[i] = maxPageItems * i;
            }
        } else ...{
            this.totalCount = 0;
        }
    }

    public int[] getIndexes() ...{
        return indexes;
    }

    public void setIndexes(int[] indexes) ...{
        this.indexes = indexes;
    }

    public int getOffset() ...{
        return offset;
    }

    public void setOffset(int startIndex) ...{
        if (totalCount <= 0)
            this.offset = 0;
        else if (startIndex >= totalCount)
            this.offset = indexes[indexes.length - 1];
        else if (startIndex < 0)
            this.offset = 0;
        else ...{
            this.offset = indexes[startIndex / maxPageItems];
        }
    }

    public int getNextIndex() ...{
        int nextIndex = getOffset() + maxPageItems;
        return nextIndex >= totalCount ? getOffset() : nextIndex;
    }

    public int getPreviousIndex() ...{
        int previousIndex = getOffset() - maxPageItems;
        return previousIndex < 0 ? DEFAULT_OFFSET : previousIndex;
    }

    /** *//**
     * @return Returns the dEFAULT_MAX_INDEX_PAGES.
     */
    public static int getDEFAULT_MAX_INDEX_PAGES() ...{
        return DEFAULT_MAX_INDEX_PAGES;
    }

    /** *//**
     * @return Returns the maxIndexPages.
     */
    public int getMaxIndexPages() ...{
        return maxIndexPages;
    }

    /** *//**
     * @param maxIndexPages
     *            The maxIndexPages to set.
     */
    public void setMaxIndexPages(int maxIndexPages) ...{
        this.maxIndexPages = maxIndexPages;
    }

    /** *//**
     * @return Returns the index.
     */
    public String getIndex() ...{
        return index;
    }

    /** *//**
     * @param index
     *            The index to set.
     */
    public void setIndex(String index) ...{
        this.index = index;
    }

    /** *//**
     * 
     * @return
     */
    public int getPage() ...{
        int page = getOffset() / this.maxPageItems + 1;
        return page;
    }

    /** *//**
     * 
     * @return
     */
    public int getPreviousPage() ...{
        if (!hasPreviousPage())
            return 1;
        return getPage() - 1;
    }

    /** *//**
     * 
     * @return
     */
    public int getTotalPage() ...{
        if (getTotalCount() == 0)
            return 0;
        else
            return getTotalCount() / this.maxPageItems + 1;
    }

    /** *//**
     * 
     * @return
     */
    public int getNextPage() ...{
        if (!hasNextPage())
            return getTotalPage();
        else
            return this.getPage() + 1;
    }

    public boolean hasNextPage() ...{
        if (getPage() >= getTotalPage())
            return false;
        else
            return true;
    }

    public boolean hasPreviousPage() ...{
        if (getPage() >= 1)
            return true;
        else
            return false;
    }
}

 

分享到:
评论

相关推荐

    java通用分页代码实例.rar

    这个"java通用分页代码实例"提供了一种适用于任意数据库的解决方案,具有高可移植性和易用性。 分页的核心在于对数据库查询结果进行分割,只返回当前页面所需的数据,同时提供翻页链接或按钮,允许用户浏览更多的...

    分页PageBean.java

    分页PageBean.java

    Java纯手工分页代码PageUtil.rar

    这个压缩包提供的代码示例中,`PageUtil`可能是实现分页逻辑的核心工具类,`DAO.java`包含了与数据库交互的代码,`BasdDictAction.java`和`BasDictDao.java`则分别代表业务逻辑层和数据访问层的实现。通过阅读和分析...

    JAVA分页显示代码.pdf

    JAVA分页显示代码.pdf

    基本分页存储管理全.java

    基本分页存储管理全.java

    对分页进行了封装,PageUtil.java工具类

    这里提到的"对分页进行了封装,PageUtil.java工具类"是一个Java实现的分页辅助类,它的主要目标是简化分页查询的操作,提供更便捷的API给开发者使用。 `PageUtil.java`工具类可能包含了以下功能: 1. **参数处理**...

    CSS分页符代码.rar

    这段代码创建了一个居中对齐的分页符容器,每个分页按钮具有一定的样式,并且区分了激活状态和不可点击状态。当然,你可以根据自己的需求调整这些样式。 接下来,我们讨论JavaScript(JS)的作用。虽然CSS可以定义...

    特别好用的分页类PagingBase.java

    特别好用的java分页类,

    java万能分页代码

    这个"万能分页3.0"的压缩包很可能包含了一个完整的分页解决方案,包括了Java代码、配置文件、可能的示例JSP页面等,帮助开发者快速集成到自己的项目中。学习和理解这些分页代码,不仅可以提升开发效率,也能加深对...

    分页工具分页工具分页工具

    分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具分页工具

    jQuery不刷新分页动态数据表格代码.rar

    jQuery不刷新分页动态数据表格代码.rar jQuery不刷新分页动态数据表格代码.rar jQuery不刷新分页动态数据表格代码.rar jQuery不刷新分页动态数据表格代码.rar jQuery不刷新分页动态数据表格代码.rar jQuery不刷新...

    实现分页的.java

    `实现分页的.java`这个项目很可能是实现了这样一个分页插件,使用了JSTL(JavaServer Pages Standard Tag Library)来简化JSP页面的编写。 JSTL是Java Web开发中的一个标准标签库,它提供了多种功能标签,包括核心...

    通用分页工具类PageInfo.java

    通用分页工具类PageInfo.java

    Java实现真分页.自己领悟.

    首先,`GenPage.java`可能是一个关键类,它可能负责计算总页数和每页的数据量,根据数据库查询结果动态生成分页参数。`BaseAction.java`可能是一个基础控制器类,处理HTTP请求并调用业务逻辑。`AreaAction.java`可能...

    jQuery表格列表分页样式代码.zip

    本资源"jQuery表格列表分页样式代码.zip"提供了一种利用jQuery实现表格数据分页的解决方案,旨在优化用户在浏览大量数据时的体验。 首先,我们要理解什么是分页。在网页展示大量数据时,一次性加载所有内容可能导致...

    java分页代码下载

    根据提供的文件信息,我们可以分析出该段代码是用于实现基于Java技术的Web应用程序中的分页功能。虽然这里的代码示例采用的是ASP.NET的语法结构,但我们可以从中抽取出与Java分页相关的概念和技术要点,并结合Java...

    java分页代码完整版

    本资源提供了一个完整的Java分页代码实现,包括注释,非常适合初学者学习和实践。 分页的核心原理是通过查询数据库时限制返回结果的数量,同时提供一个偏移量来指定从哪一条数据开始获取。在Java中,我们可以使用...

    非常优秀的Java分页代码

    在Java编程中,分页是数据管理中一个重要的概念,特别是在处理大数据集合时,它可以有效地减少内存消耗,提高用户体验。本资源提供了一套非常优秀的Java分页代码,它旨在简化开发过程,使得开发者能够轻松地在应用...

    最好用的分页代码(java版)

    本文将深入解析标题为"最好用的分页代码(java版)"的实现,探讨如何在Java环境中实现高效且灵活的分页。 该分页代码由类`CutPage`实现,它实现了`Serializable`接口,这意味着该类的对象可以被序列化,便于在网络...

    JSP分页代码 JSP分页代码.doc

    在提供的文档中,我们看到的是一段实现分页功能的JSP代码。分页是网页展示大量数据时常用的一种策略,它允许用户逐页浏览数据,而不是一次性加载所有内容,从而提高用户体验和页面加载速度。 1. **JSP基本结构**:...

Global site tag (gtag.js) - Google Analytics