Datagrid+Spring Data实现分页

本文介绍Datagrid和SpringData的分页原理。Datagrid通过自动请求分页数据并显示,而SpringData则通过PageRequest获取当前页码和最大记录数进行分页操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Datagrid分页原理

Datagrid接收的json数据格式有两种:
不分页数据:
[
{key:value,…},//每个json对象就是一条记录
{key:value,…}
]//元素的数量就是总记录数

分页数据:
{
total:100,//总记录数
rows:[ {},{} ]//当前页的json数组数据
}

1.Datagrid加载时自动向url属性的值发起请求

请求参数中自动提交了两个参数page(当前页码)和rows(每页显示的最大记录数)。
服务器返回json数据后,客户端将自动显示数据列表。

2.当改变页面或者每页记录数,Datagrid会自动发起新的请求,仍然带有page和rows两个参数。
结论:

客户端分页的相关计算和显示全部都交给了Datagrid,我们只需要在服务端拿到page和rows,根据他们查询当前页对应的数据,将数据以json格式返回交给Datagrid即可。

Spring Data的分页原理

PagingAndSortingRepository接口中提供了分页方法:Page findAll(Pageable pageable)

方法参数

Pageable接口对象,Spring Data提供了一个默认的实现类PageRequest:
构造方法中有两个参数:
参数1:page:当前页码
参数2:size:每页最大的记录数

        public PageRequest(int page, int size) {
            this(page, size, null);
        }
方法返回值

Page接口对象,Spring Data提供了一个默认的实现类PageImpl,提供了大量方法。包含对应total和rows的方法。

        //Returns the total amount of elements,获取总记录数
        public long getTotalElements() {
            return total;
        }

        //Returns the page content as {@link List},返回分页记录
        public List<T> getContent() {
            return Collections.unmodifiableList(content);
        }

常用方法:

  • getNumber():获取当前页码
  • getSize():获取当前页显示的最大记录数
  • getTotalPages():获取总的页数
  • List getContent();获取当前页的数据列表。

Datagrid+Spring Data的分页原理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值