Administrator
发布于 2021-11-25 / 1980 阅读 / 0 评论 / 0 点赞

springboot中接口post请求时分页处理

springboot中接口post请求时分页处理

1、背景

  • 在前端请求springboot接口时,page分页多为get请求,然后在get请求中定义参数@PageableDefault Pageable pageable即可,如:
@GetMapping(value = "/page")
public Page<VO> queryPage(@PageableDefault Pageable pageable) {
  return service.queryPage(pageable);
}
  • 但是如果这个时候一但修改成post请求,前端把page,size,sort等参数放到body体中,就会发现,分页失效了

2、解决方案

  • 在queryVO中定义page,size属性字段
private int page;
private int size;

getter
setter
  • 然后在接收到参数后,自己构造Pageable
import org.springframework.data.domain.PageRequest;
PageRequest pageRequest = PageRequest.of(queryVO.getPage(), queryVO.getSize());
  • 底层PageRequest继承了AbstractPageRequest,而AbstractPageRequest实现了Pageable,所以传参时,可直接将PageRequest传给service层的Pageable

image-20211125111552955

image-20211125111605121

image-20211125111613138


.End

给个一键三连吧~


评论