分页(完整版)

①分页效果:


②分页PageBean模型设计

1
package com.cn.utils;
2
3
import java.util.List;
4
5
public class PageBean<T> {
           
6
    
7
    /**
8
     * 供外界调用,只能传入一下参数
9
     * @param currentPageNumber  要显示的当前页码
10
     * @param totalRecordCounts  总记录条数
11
     * @param pageSize  每页显示条数
12
     */
13
    public PageBean(int currentPageNumber, int totalRecordCounts, int pageSize){
           
14
        this.currentPageNumber = currentPageNumber;
15
        this.totalRecordCounts = totalRecordCounts;
16
        this.pageSize = pageSize;
17
        
18
        //计算总页数
19
        totalPageCounts = totalRecordCounts%pageSize==0?totalRecordCounts/pageSize:(totalRecordCounts/pageSize+1);
20
        
21
        //计算每页开始的索引值
22
        startIndex = (currentPageNumber-1)*pageSize;
23
        
24
        /**
25
         * 计算显示的开始页码和显示的结束页码
26
         */
27
        /**
28
         * 注意设置变量,设置分页显示时显示的最大页码数量,这个数字必须为奇数,为了让当前页居中
29
         */
30
        int maxShowPageNum = 5;//可自由设置(为奇数即可)
31
        if(totalPageCounts <= maxShowPageNum){
           //总页数<=maxShowPageNum
32
            beginPageNumber = 1;
33
            endPageNumber = totalPageCounts;
34
        }else{
           //总页数>=maxShowPageNum
35
            beginPageNumber = currentPageNumber-maxShowPageNum/2;//假如maxShowPageNum=5,这是候当前页居中,则左右两边为当前页+maxShowPageNum/2
36
            endPageNumber = currentPageNumber+maxShowPageNum/2;
37
            if(beginPageNumber < 1){
           
38
                beginPageNumber = 1;
39
                endPageNumber = maxShowPageNum;
40
            }
41
            if(endPageNumber > totalPageCounts){
           
42
                beginPageNumber = totalPageCounts-(maxShowPageNum-1);
43
                endPageNumber = totalPageCounts;
44
            }
45
        }
46
    }
47
    
48
    /**
49
     * 要显示的当前页码
50
     */
51
    private int currentPageNumber;
52
    
53
    /**
54
     * 记录总条数
55
     */
56
    private int totalRecordCounts;
57
    
58
    /**
59
     * 每页显示数据条数
60
     */
61
    private int pageSize;
62
    
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值