使用传统的分页方式属实有些冗余,接下来介绍PageHelper在Springboot中的简单使用!
详情参考:PageHelper官网
一、使用maven导包
<!-- 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
此时,我们需要知道的是,我们需要在执行查询之前配置分页条件,使用pagehelper静态方法 ,默认的我们的查询会按照设置的分页条件查询,而此时我们还需要通过分页查询出来的前n条数据,获得完整分页信息,生成PageInfo对象,传给前台,通过PageInfo中的信息,实现数据的分页操作!
二、Java代码
@RequestMapping("/")
public String index(@RequestParam(value = "pageNum",defaultValue = "1",
required = false)Integer pageNum, Model model){
//分页获取前7条博客
PageHelper.startPage(pageNum,6);
List<Blog> blogs = blogService.getBlog();
PageInfo<Blog> pageInfo =new PageInfo<>(blogs);
//将pageInfo的值保存在Model中
model.addAttribute("pageInfo",pageInfo);
model.addAttribute("blogs",blogs);
return "index";
}
三、前台解析代码
<!-- 分页模块 -->
<div class="ui bottom attached segment" >
<div class="ui middle aligned two column grid">
<div class="column" th:if="${pageInfo.pages}>1">
<a href="#" th:href="@{/(pageNum=${pageInfo.prePage})}" th:if="${pageInfo.hasPreviousPage}" class="ui mini teal basic button">上一页</a>
</div>
<div class="right aligned column" th:if="${pageInfo.pages}>1">
<a href="#" th:href="@{/(pageNum=${pageInfo.nextPage})}" th:if="${pageInfo.hasNextPage}" class="ui mini teal basic button">下一页</a>
</div>
</div>
</div>
PageInfo中参数详情:
pageNum:当前为第几页
pageSize:每页的数据行数
startRow:当前页数据从第几条开始
endRow:当前页数据从第几条结束
pages:总页数
prePage:上一页页数
nextPage:下一页页数
hasPreviousPage:是否有上一页
hasNextPage:是否有下一页
navigatepageNums:所有页码的数组
至此,简单的分页使用完毕!