转自:https://blog.csdn.net/ilikejj0/article/details/81110009

1、PageInfo的源代码

private int pageNum;private int pageSize;private int size;//其中最后这个list存放的信息就是使用第三个构造方法,所传进去的List,通常是在数据库中查询到的结果,即是查询出来的book的信息//List<Book> bookList = bookService.findBookBybName(bName);
//使用pageInfo包装查询后的结果,封装了详细的查询数据,其中参数5是页码导航连续显示的页数
//PageInfo pageInfo = new PageInfo(bookList,5);private List<T> list;//构造方法
public PageInfo() {}
public PageInfo(List<T> list) {this(list, 8);}
public PageInfo(List<T> list, int navigatePages) {·····}//其中的方法public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}

补充

  //当前页private int pageNum;//每页的数量private int pageSize;//当前页的数量private int size;//由于startRow和endRow不常用,这里说个具体的用法//可以在页面中"显示startRow到endRow 共size条数据"//当前页面第一个元素在数据库中的行号private int startRow;//当前页面最后一个元素在数据库中的行号private int endRow;//总记录数private long total;//总页数private int pages;//结果集private List<T> list;//前一页private int prePage;//下一页private int nextPage;//是否为第一页private boolean isFirstPage = false;//是否为最后一页private boolean isLastPage = false;//是否有前一页private boolean hasPreviousPage = false;//是否有下一页private boolean hasNextPage = false;//导航页码数private int navigatePages;//所有导航页号private int[] navigatepageNums;//导航条上的第一页private int navigateFirstPage;//导航条上的最后一页private int navigateLastPage;

2、具体使用

//使用分页插件
//传入查询的页码,以及显示的条数
PageHelper.startPage(pn, 10);
List<Book> bookList = bookService.findBookByCategory(cId);
//使用pageInfo包装查询后的结果,封装了详细的查询数据,其中参数5是页码导航连续显示的页数
PageInfo pageInfo = new PageInfo(bookList,5);
//使用model进行返回
//model.addAttribute("pageInfo", page);
//对于ajax返回json数据,可以使用一个Msg类,方便浏览器更方便解析
return Msg.success().add("pageInfo", pageInfo);

可以直接返回pageInfo,可以得到如下的信息:

{“pageNum”:1,”pageSize”:10,”size”:10,”startRow”:1,”endRow”:10,”total”:64,”pages”:7,”list”:[{“bId”:2,”bName”:”java学习”,”price”:20.0,”author”:”jj”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:12,”bName”:”dang_9_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:18,”bName”:”dang_15_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:21,”bName”:”dang_18_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:24,”bName”:”dang_21_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:27,”bName”:”dang_24_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:30,”bName”:”dang_27_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:33,”bName”:”dang_30_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:36,”bName”:”dang_33_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:39,”bName”:”dang_36_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}}],”prePage”:0,”nextPage”:2,”isFirstPage”:true,”isLastPage”:false,”hasPreviousPage”:false,”hasNextPage”:true,”navigatePages”:5,”navigatepageNums”:[1,2,3,4,5],”navigateFirstPage”:1,”navigateLastPage”:5,”lastPage”:5,”firstPage”:1}

在此可以看出,list中存放的信息时在使用的第三个构造方法所传递的所查询的book的信息

在前端页面进行获取的时候
var emps = result.extend.pageInfo.list;
**这里使用的是.list,因为PageInfo这个类中有private List<T> list这个属性,所以尽管你存的时候写的bookList,在前端获取的时候也是.list,其得到查询结果bookList的全部信息**
通过源码可以看出来,在PageInfo这个类中,包含3个构造方法,
1.无参
public PageInfo() {}
2.一个参数
public PageInfo(List<T> list) {this(list, 8);}
3.两个参数,这里第一个参数就是传递的List<Employee> emps结果集,内部会进行自动的包装public PageInfo(List<T> list, int navigatePages) {....}

3、Msg(这个适合分页插件无关的,主要是对于cotroller返回数据,进行包装,更方便浏览器解析)

public class Msg {//表示状态码private int code;//提示信息private String msg;//要返回给浏览器的数据private Map<String,Object> extend = new HashMap<String,Object>();//在controller中调用success方法,返回Msg对象public static Msg success(){Msg result = new Msg();result.setCode(100);result.setMsg("处理成功!");return result;}public static Msg fail(){Msg result = new Msg();result.setCode(200);result.setMsg("处理失败");return result;}//把pageInfo中的数据保存到Msg中,一并返回public Msg add(String key,Object value){this.getExtend().put(key, value);return this;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Map<String, Object> getExtend() {return extend;}public void setExtend(Map<String, Object> extend) {this.extend = extend;}
}

在Msg中的extend里放了pageInfo的信息,这里extend是Map类型,是因为不需要遍历即可获取信息,而是通过键来获取。

{“code”:100,”msg”:”处理成功!”,”extend”:{“pageInfo”:{“pageNum”:1,”pageSize”:10,”size”:10,”startRow”:1,”endRow”:10,”total”:64,”pages”:7,”list”:[{“bId”:2,”bName”:”java学习”,”price”:20.0,”author”:”jj”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:12,”bName”:”dang_9_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:18,”bName”:”dang_15_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:21,”bName”:”dang_18_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:24,”bName”:”dang_21_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:27,”bName”:”dang_24_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:30,”bName”:”dang_27_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:33,”bName”:”dang_30_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:36,”bName”:”dang_33_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}},{“bId”:39,”bName”:”dang_36_书1”,”price”:20.1,”author”:”saka1”,”cId”:1,”category”:{“cId”:1,”cName”:”学习用书”}}],”prePage”:0,”nextPage”:2,”isFirstPage”:true,”isLastPage”:false,”hasPreviousPage”:false,”hasNextPage”:true,”navigatePages”:5,”navigatepageNums”:[1,2,3,4,5],”navigateFirstPage”:1,”navigateLastPage”:5,”lastPage”:5,”firstPage”:1}}}

【转载】分页插件中关于PageInfo相关推荐

  1. 分页插件中关于PageInfo

    重点1:PageInfo的输出结果 1.PageInfo的源代码private int pageNum;private int pageSize;private int size;//其中最后这个li ...

  2. Mybatis 分页插件 Pagehelper 的 PageInfo 字段属性解释

    示例,使用了分页插件返回的结果数据: {"pageNum":1,"pageSize":50,"size":1,"startRow& ...

  3. PageHelper分页插件上的PageInfo使用

    依赖包 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelp ...

  4. 附加:PageHelper分页插件的:Page和PageInfo的区别;

    说明: (1)为什么写本篇博客?: ● 在[Spring Boot电商项目29:商品分类模块八:后台的[分类列表(平铺)]接口:]中,实现分页功能时,使用到了PageHelper分页插件: ● 但是, ...

  5. [置顶]mybatis分页插件实现分页...

    1.了解过程:在数据库服务器中,sql语句实现分页便要每个查询语句都要写上limit(开始,结束),并且不能灵活的随前端变化,为此使用拦截器的方法,过程:拦截器拦截请求的sql语句(根据需要拦截的ID ...

  6. Mybatis分页插件更新

    分页插件演示:http://blog.csdn.net/isea533/article/details/23831273 分页插件演示样例:http://blog.csdn.net/isea533/a ...

  7. java mvc 分页查询条件_java分页条件查询-GridManager.js表格插件+Pageable分页对象+mybatis pagehelper分页插件...

    总览: 一. GridManager.js表格插件 直接上插件API:链接地址 感觉该插件简单好用,插件作者也是有问必答,nice 二. 添加依赖 后端: pom文件添加: 1.7.0.RELEASE ...

  8. angularJS前端分页插件

    首先在项目中引入 分页插件的 js 和 css: 在html页面引入 相关js 和 css: 在控制器中引入分页插件中定义的 module[可以打开pagination.js查看,可以看到 其实,在插 ...

  9. mybatis 分页需要的jar包下载_牛逼哄哄的PageHelper分页插件到底牛在哪里?

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 urlify.cn/z2IFn2 推荐:https://www.xttblog. ...

最新文章

  1. 多核之后,CPU 的发展方向是什么?中科院计算所包云岗详细解读
  2. Redis在C#中的使用及Redis的封装
  3. 解决虚拟机vmware安装64位系统“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
  4. 【笔记】HMM在股票指数中的简单应用
  5. 2021 华数杯全国大学生数学建模竞赛B题——进出口公司的货物装运策略
  6. BZOJ 2669 Luogu P3160 [CQOI2012]局部极小值 (容斥原理、DP)
  7. 【收藏】QGIS加载xyz格式地图(以高德影像图和路网为例)
  8. PHP系统能不能加爬虫,php能做爬虫吗
  9. H3C通过端口ID决定端口角色
  10. 你对webpack了解多少?
  11. QuickStart系列:docker部署之Gitlab本地代码仓库
  12. 深度学习框架PyTorch一书的学习-第四章-神经网络工具箱nn
  13. linux指令 sed,Linux命令sed
  14. COCOS2D坐标系统的一些说明
  15. 使用VC6.0缺少Dll或头文件解决方法
  16. Java代码混淆器Allatori Java obfuscator最新版附教程和下载
  17. 杀毒软件开发,原理、设计、编程实战
  18. CDD数据库文件制作(三)——DID
  19. Python 二分法求多项式单根
  20. oracle输出数据,Oracle数据库输出输入

热门文章

  1. kernel logo 生成方法
  2. 苹果企业签名独立、非独立什么意思?
  3. spark视频-第二期:Shark、SparkSQL
  4. 新浪微博PC客户端(DotNet WinForm版)—— 初探
  5. 【鸿蒙OS开发入门】13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解
  6. 个人开发者如何免费打造属于自己的微信小程序
  7. 2022年全球市场三维测量产品总体规模、主要生产商、主要地区、产品和应用细分研究报告
  8. element-plus小demo
  9. m3u8转mp4,不用格式软件
  10. iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引