Datagrid+Spring Data实现分页

来源:互联网 发布:数据通信与网络 编辑:程序博客网 时间:2024/05/01 23:25

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的分页原理

0 0
原创粉丝点击