在SpringBoot或者Spring项目中实现最原始的分页功能

不得不感慨自己的写代码水平还是有很大的提升空间,甚至是我觉得很烂来形容吧,近两天一直有一个项目的分页功能很让我头疼,是一个关于SpringBoot的项目,因为可能平时实战项目做的少,由于是学生的原因吧,反正就是自己的不足,导致这个问题困扰着我,又因为忙着考研,所有最近也没时间花心思来慢慢写和整理,但是一直让我焦急万分啊,于是花了两个晚上细细斟酌别人的代码实现,然后开始啥都不看,自己手写实现全面的分页功能,到现在为止总算是小有所成吧,基本完成需求了。后面会学习PageHelper分页插件简化分页的复杂步骤,但是这种原始的写法,自己一定要随手捏来,十分锻炼水平,后面要更加努力的学习了早上再也不能睡到11点了,太颓废(小声逼逼晚上学习带玩熬夜太晚)哈哈哈!

下面是本次实现分页的代码部分:

首先需要一个关于分页的实体类来映射前后端数据,使其具有完整性,也把代码的冗余性降到了最低水准

package com.liuliu.web;

/**
 * @author yuqiliu
 * @create 2020-02-19  22:31
 */
import java.util.List;

public class Page<T> {


    private int pageNo;//当前是第几页


    private List<T> list; //当前显示的图书列表集合


    private int pageSize = 3;//页面的尺寸数


    public long getTotalItemNumber() {
        return totalItemNumber;
    }

    private long totalItemNumber;//总的条目数

    private int totalPageNumber;//总页数


    public Page(int pageNo) {
        super();
        this.pageNo = pageNo;
    }


    public int getPageNo() {
        if(pageNo < 0)
            pageNo = 1;

        if(pageNo > getTotalPageNumber()){
            pageNo = getTotalPageNumber();
        }

        return pageNo;
    }

    public Page() {
    }

    public void setPageNo(int pageNo) {
        this.pageNo = pageNo;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setList(List<T> list) {
        this.list = list;
    }

    public List<T> getList() {
        return list;
    }

    public void setTotalPageNumber(int totalPageNumber) {
        this.totalPageNumber = totalPageNumber;
    }

    public int getTotalPageNumber(){

        totalPageNumber = (int)totalItemNumber / pageSize;

        if(totalItemNumber % pageSize != 0){
            totalPageNumber++;
        }

        return totalPageNumber;
    }

    public void setTotalItemNumber(long totalItemNumber) {
        this.totalItemNumber = totalItemNumber;
    }

    public boolean isHasNext(){
        if(getPageNo() < getTotalPageNumber()){
            return true;
        }

        return false;
    }

    public boolean isHasPrev(){
        if(getPageNo() > 1){
            return true;
        }

        return false;
    }

    public int getPrevPage(){
        if(isHasPrev()){
            return getPageNo() - 1;
        }

        return getPageNo();
    }

    public int getNextPage(){
        if(isHasNext()){
            return getPageNo() + 1;
        }

        return getPageNo();
    }
}
上一篇:Spring Boot(十二):Spring Boot集成pagehelper分页插件


下一篇:小程序上拉触底&下拉加载