pageHelp分页插件

pageHelp是一款很好用的分页插件,使用它我们可以很轻松的实现分页的功能。
想象一个场景,当我们做列表展示的时候我们不仅需要将列表中的数据响应给前台,是不是还应该将分页信息也相应给前台呢?而这时候我们在后台怎么拿到分页信息呢?
其实pageHelp已经给到了我们分页的数据

public ResultJson listAll(User user, Integer pageNo,Integer pageSize) {
    Page<User> page = PageHelper.startPage(pageNo,pageSize);
    List<User> list = userMapper.listAll(user);
    log.info(String.valueOf(page));
    if (list == null || list.size() == 0) {
          return ResultJson.error("查询失败");
      }
      return new ResultJson(ResultConstant.OK,"查询成功", PageWeb.build(page));
  }

注意上述代码,我在执行完startPage后输出了一下page的信息,让我们来看一下page所包含的信息

[21:07:34:541] [INFO] - com.qcby.demo.service.Impl.UserServiceImpl.listAll(UserServiceImpl.java:58) - Page{count=true, 
pageNum=1, 
pageSize=2, 
startRow=0,
 endRow=2, 
 total=2, 
 pages=1,
  reasonable=false,
   pageSizeZero=false}
   [User(id=4, nickName=老师, userName=华强, password=123456, sex=0, authList=null),
    User(id=5, nickName=管理员, userName=admin, password=123456, sex=0, authList=null)]

可以看到 page中已经包含了我们需要的分页信息,甚至还包含了我们需要得到的用户信息,这为我们为前台做响应提供了很大的遍历。

我们可以自己定义一个PageWeb类来封装一下这些信息以便我们的使用

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class PageWeb<T> {

    private int pageNo;
    private int pageSize;
    private long total;
    private int totalPages;
    private List<T> records;

    private PageWeb(Page<T> page) {
        this.pageNo = page.getPageNum();
        this.pageSize = page.getPageSize();
        this.total = page.getTotal();
        this.totalPages = page.getPages();
        this.records = page.getResult();
    }

    /**
     * 返回分页信息
     * @param page
     * @return
     */
    public static <T> PageWeb build(Page<T> page){
        return new PageWeb<>(page);
    }

}

这样当我们想要响应给前台分页信息的时候我们只需要return
PageWeb.build(page)就OK了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值