在spring-boot中使用pageHelper插件
添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
注意:如果是mvc项目则是下面这个依赖
<!-- pagehelper分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.2.0</version>
</dependency>
如果在spring-boot项目中引入spring-mvc项目则会引发错误
分页方法
@RequestMapping("/findAll")
//@RequestParam(required = true,defaultValue = "1") 如果前台页面没有传入page的值,那么采用默认值1
public String findAll(@RequestParam(required = true,defaultValue = "1") Integer page, Model model){
//开始分页
PageHelper.startPage(page,10);
List<Car> carList = autoService.findAll();
PageInfo<Car> pageInfo = new PageInfo<>(carList);
model.addAttribute("list",carList);
//将分页信息存入model对象,以便前台对象使用
model.addAttribute("page",pageInfo);
return "list";
}
前台页面
<p>第${page.pageNum}页</p>
<p>共${page.pages}页</p>
<div><a href="findAll?page=${page.pages-(page.pages-1)}" class="layui-btn">首页</a></div>
<div><a href="findAll?page=${page.prePage}" class="layui-btn">上一页</a></div>
<div><a href="findAll?page=${page.nextPage}" class="layui-btn">下一页</a></div>
<div><a href="findAll?page=${page.pages}" class="layui-btn">尾页</a></div>
常用的PageInfo对象方法
pages:总页数
pageNum:当前页
prePage:上一页
nextPage:下一页
firstPage:第一页
lastPage:最后一页
但是需要注意的是firstPage是获取到导航条上的第一页,lastPage是获取到导航条上的最后一页,并不是真正的最后一页
通过观察源码:
@Deprecated
// firstPage就是1, 此函数获取的是导航条上的第一页, 容易产生歧义
public int getFirstPage() {
return navigateFirstPage;
}
@Deprecated
// 请用getPages()来获取最后一页, 此函数获取的是导航条上的最后一页, 容易产生歧义.
public int getLastPage() {
return navigateLastPage;
}
解决办法:
通过前台代码观察可以得出点击最后一页的按钮是吧page=“最后一页的值”,传递给后台,后台再去查询
所以最后一页也可以写成pages
第一页楠就是page=1,可以直接赋值给他,也可以这样写page.pages-(page.pages-1) 总页数减去总页数减一的差
分页原理
分页原理在
有介绍 具体可以查看这篇文章
分页原理类似spring的aop 拦截到sql语句进行增强
例如 sql:select * from tableName
增强后:sql : select * from tableName limit ?,?
版权声明:本文为xu2414506319原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。