springmvc、springboot等等开发的通用分页工具类,及页面显示

直接上工具代码:

package com.junma.util;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author: [email protected]
 * @Date: 2018/11/6 下午5:38
 * @Version: 1.0
 * @Desc: TODO
 **/
public class PageHelper {
    private int totalCount = 0;//总条数
    private int totalPage = 0;//总页数
    private int pageSize = 2;//每页显示行数  ①如果要调整每页显示行数,必须第一个设置
    private int currentPage = 1;//当前页
    private int num = 3;//当前页之前和之后显示的页数个数 如:假设当前页是 6 共有11页 那么 显示分页条会显示 1 2 3 4 5 [6] 7 8 9 10 11
    private List listItems = new ArrayList<>();

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        if (totalCount > 0) {
            this.totalCount = totalCount;
            if (this.totalCount % this.pageSize == 0) {
                this.totalPage = totalCount / pageSize;
            } else if (this.totalCount % this.pageSize > 0) {
                this.totalPage = totalCount / pageSize + 1;
            } else {
                this.totalPage = 0;
            }
        } else {
            this.totalCount = 0;
        }
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public int getPageSize() {
        return pageSize;
    }

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

    public int getCurrentPage() {
        return currentPage;
    }

    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }

    public int getNum() {
        return num;
    }

    public void setNum(int num) {
        this.num = num;
    }

    public List getListItems() {
        return listItems;
    }

    public void setListItems(List listItems) {
        this.listItems = listItems;
    }

    /**
     * 获取前一页
     *
     * @return
     */
    public Integer getPrev() {
        if (currentPage==1) {
            return 1;
        }
        return currentPage - 1;

    }

    /**
     * 获取后一页
     *
     * @return
     */
    public Integer getNext() {
        return currentPage + 1;
    }

    /**
     * 获取最后一页
     *
     * @return
     */
    public Integer getLast() {
        return totalPage;
    }

    /**
     * 判断是否有前一页
     *
     * @return
     */
    public boolean getIsPrev() {
        if (currentPage > 1) {
            return true;
        }
        return false;
    }

    /**
     * 判断是否有后一页
     *
     * @return
     */
    public boolean getIsNext() {

        if (currentPage < totalPage) {
            return true;
        }
        return false;
    }

    /**
     * 当前页的前num条页 假设当前页是 6 共有11页 如:1 2 3 4 5
     *
     * @return
     */
    public List getPrevPages() {
        List list = new ArrayList();
        Integer _frontStart = 1;
        if (currentPage > num) {
            _frontStart = currentPage - num;
        }
        for (Integer i = _frontStart; i < currentPage; i++) {
            list.add(i);
        }
        return list;
    }

    /**
     * 当前页的后num条页 假设当前页是 6 共有11页 如:7 8 9 10 11
     *
     * @return
     */
    public List getNextPages() {
        List list = new ArrayList();
        Integer _endCount = num;
        if (num < totalPage && (currentPage + num) < totalPage) {
            _endCount = currentPage + _endCount;
        } else {
            _endCount = totalPage;
        }
        for (Integer i = currentPage + 1; i <= _endCount; i++) {
            list.add(i);
        }
        return list;
    }
}

查询时需要传到三个值:

PageHelper> pageHelper = new PageHelper<>();
pageHelper.setPageSize(10);
pageHelper.setTotalCount(100);
pageHelper.setCurrentPage(2);

如果要改变每页显示行数,必须第一个传值,不然会有意想不到的效果

分页查询条件,默认是从第一页开始的,前台需要从1开始传。

Map params = new HashMap();
params.put("startNum", (pageHelper.getCurrentPage() - 1) * pageHelper.getPageSize());
params.put("pageSize", pageHelper.getPageSize());

jsp中直接复制过来
 

 

github上一个好用的分页插件:https://github.com/pagehelper/Mybatis-PageHelper

------好了一个万能的分页写法

你可能感兴趣的:(Java)