jsp实现分页功能

数据分页,在开发中必不可少,由于数据量太大,不得不进行处理。但是对于分页,又有很多种方式,比如使用sql语句的limit,或者使用jquery的插件。但是底层的逻辑,都是需要的。
在这里贴出javabean对象的代码,以及一个辅助类。我做的这个项目是一个个人博客,算是个人网站吧。

(只贴部分底层逻辑代码)

Page.java

package cn.edu.ldu.util;

public class Page {

    private int everyPage;          //每页显示的数量
    private int totalPage;          //总页数
    private int totalCount;         //总数量
    private int currentPage;        //当前页
    private int beginIndex;         //起始页
    private boolean hasPrepage;     //是否有上一页
    private boolean hasNextPage;    //是否有下一页

    public Page() {
    }

    public Page(int everyPage, int totalPage, int totalCount, int currentPage,int beginIndex, boolean hasPrepage, boolean hasNextPage)
    {
        this.everyPage = everyPage;
        this.totalPage = totalPage;
        this.totalCount = totalCount;
        this.currentPage = currentPage;
        this.beginIndex = beginIndex;
        this.hasPrepage = hasPrepage;
        this.hasNextPage = hasNextPage;
    }

    public int getEveryPage() {
        return everyPage;
    }

    public void setEveryPage(int everyPage) {
        this.everyPage = everyPage;
    }

    public int getTotalPage() {
        return totalPage;
    }

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

    public int getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount;
    }

    public int getCurrentPage() {
        return currentPage;
    }

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

    public int getBeginIndex() {
        return beginIndex;
    }

    public void setBeginIndex(int beginIndex) {
        this.beginIndex = beginIndex;
    }

    public boolean isHasPrepage() {
        return hasPrepage;
    }

    public void setHasPrepage(boolean hasPrepage) {
        this.hasPrepage = hasPrepage;
    }

    public boolean isHasNextPage() {
        return hasNextPage;
    }

    public void setHasNextPage(boolean hasNextPage) {
        this.hasNextPage = hasNextPage;
    }

}

PageUtil.java

package cn.edu.ldu.util;

public class PageUtil {
    //创建分页信息对象
    public static Page createPage(int everyPage,int totalCount,int currentPage) {
        everyPage = getEveryPage(everyPage);
        currentPage = getCurrentPage(currentPage);
        int totalPage = getTotalPage(everyPage, totalCount);
        int beginIndex = getBeginIndex(everyPage, currentPage);
        boolean hasPrePage = getHasPrePage(currentPage);
        boolean hasNextPage = getHasNextPage(totalPage, currentPage);
        return new Page(everyPage, totalPage,totalCount, currentPage,
                beginIndex, hasPrePage,  hasNextPage);
    }

    //获得每页显示记录数
    public static int getEveryPage(int everyPage) {
        return everyPage == 0 ? 10 : everyPage;
    }

    //获得当前页
    public static int getCurrentPage(int currentPage) {
        return currentPage == 0 ? 10 : currentPage;
    }

    //获得总页数
    public static int getTotalPage(int everyPage,int totalCount) {
        int totalPage=0;
        //要判断每页是否满页,否则页数+1
        if(totalCount!=0 && totalCount%everyPage==0) {
            totalPage=totalCount/everyPage;
        }
        else {
            totalPage=totalCount/everyPage+1;
        }
        return totalPage;
    }

    //获得起始位置
    public static int getBeginIndex(int everyPage,int currentPage) {
        return everyPage*(currentPage-1);
    }

    //判断是否有上一页
    public static boolean getHasPrePage(int currentPage) {
        return currentPage== 1 ? false : true;

    }

    //判断是否有下一页
    public static boolean getHasNextPage(int totalPage, int currentPage) {
        return (currentPage == totalPage) || (totalPage == 0) ? false : true;
    }

}

每次我只需要去调用即可。

//传入每页显示的页数,总记录数,当前页
Page page=PageUtil.createPage(5, diaryDao.findAllCount(), currentPage);

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值