JavaWeb分页


  • 平时我们查询的必要参数是写在Dao层的,但这样是不合理的,Dao层只是用来访问和操作数据库,不应该包含其他信息,所以通用做法创建一个Page对象,将分页信息全部放到里面

Page对象

public class Page {
    
    private List<Object> list;  //存放查询的数据
    private int currentPage;    //当前页数
    private int pageSize;       //每页显示的数据条数
    private int totalRecord;    //总数据条数
    private int totalPage;      //总页数
    
    //构造函数,两个参数
    public Page(int currentPage, int pageSize) {
        super();
        this.currentPage = currentPage;
        this.pageSize = pageSize;
    }
    
    public List<Object> getList() {
        return list;
    }
    public void setList(List<Object> list) {
        this.list = list;
    }
    public int getCurrentPage() {
        return currentPage;
    }
    public void setCurrentPage(int currentPage) {
        this.currentPage = currentPage;
    }
    public int getPageSize() {
        return pageSize;
    }
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
    public int getTotalRecord() {
        return totalRecord;
    }
    public void setTotalRecord(int totalRecord) {
        this.totalRecord = totalRecord;
    }
    public int getTotalPage() {
        return totalPage;
    }
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
}

Service层

public Page getPageData(int currentPage,int pageSize){
    
    Page page = new Page(currentPage,pageSize);
    
    //通过Dao层把查询数据放到Page对象中
    page.setTotalPage(pageDao.getTotalPage);
    page.setTotalRecord(pageDao.getTotalRecord);
    page.setList( pageDao.setList(currentPage,pageSize) );
    
    //返回Page给Web层
    return page;
}

Web层

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    //获取前端传过来的参数
    int currentPage = Integer.parseInt( request.getParameter("currentPage") );
    int pageSize = Integer.parseInt( request.getParameter("pageSize") );
    
    //处理Page的Service对象
    PageService pageService = new PageService();
    
    //返回数据给前端,这里应该返回Json对象
    Page page = pageService.getPageData(currentPage, pageSize);
    
    //阿里巴巴有个开源的jar包,fastJson可以Bean和Json互转,具体操作可以看下面链接
    return JSON.toJSONString(page);
}

FastJson 点这里看对象和Json互转

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 统一响应数据的封装

    现在不会点前后端分离都不好意思,在分离的环境中,我们前后交互就显得尤为重要。前端按照接口文档中的URL地址和参数要求发送请求,接着后端对业务进行处理就响应约定格...

    Howl
  • Java的标签

    以前笔者如何退出双重循环呢? 利用循环条件判断,加上break、continue、return可以改变流程

    Howl
  • Spring入门(三)——AOP

    aspect object programming ,简单来说就是把重复的代码抽取出来,然后再需要用到的地方进行切入,这里讲解基于接口的注解实现

    Howl
  • 你不知道的Interface的骚操作

    "难道面试不顺利?"小A心想。于是问小呼都问了什么。小呼说,面试官问了个奇怪的问题,

    PhoenixZheng
  • HDU 2546 饭卡(01背包裸题)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O...

    Angel_Kitty
  • 优化 Java 中的多态代码

    Oracle的Java是一个门快速的语言,有时候它可以和C++一样快。编写Java代码时,我们通常使用接口、继承或者包装类(wrapper class)来实现多...

    用户1257393
  • 刷题打卡:在两个长度相等的排序数组中找到上中位数

    给定两个有序数组arr1和arr2,已知两个数组的长度都为N,求两个数组中所有数的上中位数。要求时间复杂度O(logN),空间复杂度O(1)

    帅地
  • 二进制的骚操作,省字段,省带宽,提效率...

    上一个礼拜和一个同事对接口,前端同事问我是不是接口文档写错了,一个订单的异常标签有多个,不应该返回一个数组吗?为啥只返回了一个数字。

    Java识堂
  • 几种设计良好结构以提高.NET性能的方法

    设计良好的系统,除了架构层面的优良设计外,剩下的大部分就在于如何设计良好的代码,.NET提供了很多的类型,这些类型非常灵活,也非常好用,比如List,Dicti...

    Edison.Ma
  • .NET Core微服务之基于MassTransit实现数据最终一致性(Part 2)

      在上一篇中,我们了解了MassTransit这个开源组件的基本用法,这一篇我们结合一个小案例来了解在ASP.NET Core中如何借助MassTransit...

    Edison Zhou

扫码关注云+社区

领取腾讯云代金券