显示数据实现分页功能,详细过程,以及使用方法教程

本文详述了如何利用Java工具类PageBean实现页面分页功能,包括封装PageBean类,设定分页思路,以及在Servlet中处理分页请求的方法。通过前端页面传入当前页码,结合数据库查询,实现数据的动态展示和页码跳转。
摘要由CSDN通过智能技术生成

利用工具类PageBean实现页面分页功能详细流程

1.首先封装一个PageBean类

package com.csi.utils;

import java.util.List;

public class PageBean {

//结果数据集
private List<T> datas ;

//总记录数
private int totalRecords ;

//每页显示条数
private int perShowPageNO = 10 ;

//总页数
private int totalPageNO ;

//当前页
private int currentPageNO = 1 ;

//获取上一页
public int getPreviewPageNO() {
    //判断是否到了第一页,如果是第一页,就将第一页返回,否则执行当前页减一操作
    if(currentPageNO <= 1) {
        return 1 ;
    }

    return currentPageNO - 1 ;
}

//获取下一页
public int getNextPageNO() {
    //判断是否到了最后一页,如果是最后一页,就将最后一页页码返回,否则执行当前页加一操作
    if(currentPageNO >= totalPageNO) {
        return totalPageNO ;
    }
    return currentPageNO + 1 ;
}

public List<T> getDatas() {
    return datas;
}

public void setDatas(List<T> datas) {
    this.datas = datas;
}

public int getTotalRecords() {
    return totalRecords;
}

public void setTotalRecords(int totalRecords) {
    this.totalRecords = totalRecords;
}

public int getPerShowPageNO() {
    return perShowPageNO;
}

public void setPerShowPageNO(int perShowPageNO) {
    this.perShowPageNO = perShowPageNO;
}

public int getTotalPageNO() {
    //首先计算总的页数
    int totalPageNO = totalRecords % perShowPageNO == 0 ? totalRecords / perShowPageNO : totalRecords / perShowPageNO + 1 ;
    //将计算结果设置给总页数的set方法中
    setTotalPageNO(totalPageNO);
    //返回总页数
    return totalPageNO;
}

public void setTotalPageNO(int totalPageNO) {
    this.totalPageNO = totalPageNO;
}

public int getCurrentPageNO() {
    return currentPageNO;
}

public void setCurrentPageNO(int currentPageNO) {
    this.currentPageNO = currentPageNO;
}

}

分页的思路:

分页首先需要两部分数据,一部分是从数据库获取的数据,一部分是在页面上动态创建的页码。这个类包含以下属性:存放数据的list集合,由于这个是工具类,所以我们list集合用泛型定义。上一页,下一页,当前页,总页数,每页多少条记录数,以及总记录数。属性都用private 封装,然后总页数用get方法来返回,用总记录数模每页显示多少条记录数,模的值如果大于0,那么让总页数除以每页显示记录数的值+1,否则就等于总页数除以每页显示记录数的值,然后调用set方法,将结果传入set方法中。上一页,下一页这两个属性,我们把它定义成方法,上一页中的方法对当前页进行判断,如果当前页<=1,那么上一页的返回结果就是1,下一页中的方法对当前页进行判断,如果当前页>=总页数,那么我们让下一页返回总页数。至此,这个工具类完毕。

2.使用方法:

2.1:

在前端页面输入你搜索到的内容,我们叫它为关键字。然后在servlet类中获取到这个关键字,在前端页面中的上一页和下一页的a标签中进行跳转到这个servlet类中,通过?表达式传参,传入当前页数,servlet类中接收到这个参数,获取到当前页数。 由于传入的是一个和字符串,我们需要对它进行判断,如果它不为空,那么他就有值,将它转换为整型之后赋给当前页,如果他为空,说明没有值,那么让当前页为1.写完上一页和下一页后,利用for循环,来循环添加前端页面的页码。 从1起始,到总页数结束。例如循环创建的第一个a标签,它的pageIndex的值为1,下一个a标签的pageIndex的值为2,以此类推。然后利用?表达之让当前页等于${pageIndex},以此实现当前页的改变,然后向servlet类中传入当前页的值,以保证serlvet类中可以接收到前端页面客户所点每一个页码的值是多少。

代码部分:

这是前端页面通过循环遍历pageBean里面的list集合属性,来将数据库分页之后的数据显示在页面上。这属于数据部分
<c:forEach var = “brandList” items=" p a g e B e a n . d a t a s " > < t r > < t d > {pageBean.datas}"> <tr> <td> pageBean.datas"><tr><td>{brandList.id}
b r a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值