博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分页工具类
阅读量:6202 次
发布时间:2019-06-21

本文共 4662 字,大约阅读时间需要 15 分钟。

写的一个分页工具类,如果有问题的话,请指正,谢谢

import java.util.ArrayList;import java.util.List;/** * 分页工具类 *  * @author user *  */public class Pager {    private static final int DEFAULT_PAGESIZE = 10;// 默认分页的每页显示的条数    private static final int DEFAULT_PAGENUM = 5;// 默显示页码的数量    private int pagerIndex;// 当前的页码    private int pagerCount;// 总页码    private int pageSize;// 每页显示的条数    private int recordCount;// 总记录数    private int offsetNum;// 显示页码数量的偏移量    private int pageNum;// 显示页码的数量    public Pager() {    }    /**     * 构造函数,初始化分页的信息,自动修正     *      * @param pageIndex     *            当前的页码     * @param recordCount     *            总记录数     * @param pageSize     *            分页每页显示的条数     */    public Pager(int pageIndex, int recordCount, int pageSize) {        this.pagerIndex = pageIndex;        this.recordCount = recordCount;        this.pageSize = pageSize < 1 ? Pager.DEFAULT_PAGESIZE : pageSize;        this.pagerCount = (this.recordCount - 1) / pageSize + 1;        if (this.pagerIndex < 1)            this.pagerIndex = 1;        if (this.pagerIndex > pagerCount)            this.pagerIndex = this.pagerCount;        this.setPageNum(Pager.DEFAULT_PAGENUM);    }    /**     * 构造函数,初始化分页的信息,自动修正     *      * @param pageIndex     *            当前的页码     * @param recordCount     *            总记录数     * @param pageSize     *            分页每页显示的条数     * @param pagerNum     *            每页显示的条数     */    public Pager(int pageIndex, int recordCount, int pageSize, int pagerNum) {        this(pageIndex, recordCount, pageSize);        this.setPageNum(pagerNum);    }    /**     * 设置分页的信息,自动修正     *      * @param pageIndex     *            当前的页码     * @param recordCount     *            总记录数     * @param pageSize     *            分页每页显示的条数     */    public void setPagerInfo(int pageIndex, int recordCount, int pageSize) {        this.pagerIndex = pageIndex;        this.recordCount = recordCount;        this.pageSize = pageSize < 1 ? Pager.DEFAULT_PAGESIZE : pageSize;        this.pagerCount = (this.recordCount - 1) / pageSize + 1;        if (this.pagerIndex < 1)            this.pagerIndex = 1;        if (this.pagerIndex > pagerCount)            this.pagerIndex = this.pagerCount;    }    /**     * 得到上一页     *      * @return     */    public int getProvPageIndex() {        return (this.pagerIndex - 1) < 1 ? 1 : this.pagerIndex - 1;    }    /**     * 得到下一页     *      * @return     */    public int getNextPageIndex() {        return (this.pagerIndex + 1) > this.pagerCount ? pagerCount : this.pagerIndex + 1;    }    public int getPagerIndex() {        return pagerIndex;    }    public int getPagerCount() {        return pagerCount;    }    public int getPageSize() {        return pageSize;    }    public int getRecordCount() {        return recordCount;    }    /**     * 设置显示页码的数量     *      * @param pageNum     *            显示页码的数量     */    private void setPageNum(int pageNum) {        pageNum = pageNum % 2 == 0 ? ++pageNum : pageNum;// 页数目录的数量只能为奇数        pageNum = pageNum < 1 ? Pager.DEFAULT_PAGENUM : pageNum;// 如果显示的页码数量小于1,则设置为默认值        pageNum = pageNum > this.pagerCount ? (this.pagerCount % 2 ==0&&this.pagerCount>2 ? this.pagerCount - 1 : this.pagerCount)                : pageNum;// 如果显示页码的数量大于总页数,则邓等于页码德总页数        this.offsetNum = (pageNum - 1) / 2;        this.pageNum = pageNum;    }    /**     * 分页目录显示样式     *      * @return     */    public List
getShowPageStyle() { List
list = new ArrayList
(); // 当分页的总数量小于等于显示分页的数量 if (this.pagerCount <= this.pageNum) { for (int i = 1; i <= this.pagerCount; i++) { list.add(i); } return list; } // 显示分页数量的偏移量大于当前的页码 if (this.offsetNum >= this.pagerIndex) { for (int i = 1; i <= this.pageNum; i++) { list.add(i); } return list; } // 当前的页码在最后几页且在偏移量范围之内 if (this.pagerIndex >= this.pagerCount - this.offsetNum) { for (int i = pagerCount - this.pageNum + 1; i <= this.pagerCount; i++) { list.add(i); } return list; } // 普通情况 for (int i = this.pagerIndex - offsetNum; i <= this.pagerIndex + this.offsetNum; i++) { list.add(i); } return list; } public static void main(String[] args) { Pager pager = new Pager(1, 100, 10); List
list = pager.getShowPageStyle(); for (Integer integer : list) { System.out.println(integer); System.out.println("================"); } }}

转载于:https://www.cnblogs.com/yxdz/p/7528595.html

你可能感兴趣的文章
tomcat日志神器--kibana
查看>>
Idea_学习_08_常用快捷键
查看>>
怎么换网站模板?
查看>>
初学Python——函数
查看>>
Highcharts 7.1.1 发布,制作图表的纯 JS 类库
查看>>
如何删除微信web开发者工具中失效项目?
查看>>
spring源码-增强容器xml解析-3.1
查看>>
从编程小白到全栈开发:一只编程小白
查看>>
Python基础系列-列表解析(list comprehension)
查看>>
2016最新 wamp2.5+windows 10安装CoedSgniffer代码格式检查:5分钟安装 30分钟入门和浏览常用命令...
查看>>
基于BottledWater-PG+nodejs实时地图应用实践
查看>>
LeetCode 283 Move Zeroes(移动所有的零元素)
查看>>
MySQL 添加索引之后 数据库做了些什么?
查看>>
AirPods的自动连接配对原理
查看>>
Worktile获斯道资本领投5000万人民币B轮融资,上半年营收同比增长300%以上
查看>>
HyperLedger Fabric 1.2 区块链技术形成(1.2)
查看>>
RStudio v1.2.1335 发布,R 语言的集成开发环境
查看>>
未来高端医疗器械将占据主要市场份额
查看>>
最完美的毁尸灭迹:皮箱连环弃尸案始末
查看>>
Web性能优化 – 关键渲染路径以及优化策略
查看>>