一、项目环境
- spring boot 2.3.0
- idea 2019.2.3
- pagehelper 1.3.0
二、引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
三、添加配置
#修改application.yml,添加以下内容。
#分页设置
pagehelper:
helper-dialect: mysql
reasonable: true
support-methods-arguments: true
params: count=countSql
四、分页代码
/**
* @param model 集合
* @param pageNum 查询页面的起始页码,默认第1页为起始页
* @param pageSize 查询页面的条目数,默认每页4条数据
* @return 前端页面
*/
@RequestMapping("/list")
public String list(Model model,
@RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
@RequestParam(value = "pageSize", defaultValue = "4") int pageSize
) {
//分页功能
PageHelper.startPage(pageNum, pageSize);
List<Goods> goodsList = goodsService.findAll();
PageInfo<Goods> pageInfo = new PageInfo<>(goodsList);
model.addAttribute("pageInfo", pageInfo);
return "admin/goods_list";
}
五、页面设置
<div class="goods-panel">
<table class="goods-list">
<tr class="goods-title">
<th>商品编号</th>
<th>图片</th>
<th>名称</th>
<th>价格</th>
<th>产地</th>
<th>生产日期</th>
<th>分类</th>
<th>操作</th>
</tr>
<th:block th:each="g:${pageInfo.list}">
<tr>
<td th:text="${g.goodsId}"></td>
<td>
<img th:src="${g.picture}" width="80" height="80"/>
</td>
<td th:text="${g.goodsName}"></td>
<td th:text="${g.goodsPrice}"></td>
<td th:text="${g.produceAddress}"></td>
<td th:text="${#dates.format(g.produceDate,'yyyy-MM-dd')}"></td>
<td th:text="${g.category.categoryName}"></td>
<td>
<a th:href="@{/admin/goods/update_show(goodsId=${g.goodsId})}">修改</a>
<a th:href="@{/admin/goods/delete(goodsId=${g.goodsId})}">删除</a>
</td>
</tr>
</th:block>
</table>
<div class="goods-page">
<p>第 <span th:text="${pageInfo.pageNum}"></span> 页,共 <span th:text="${pageInfo.pages}"></span> 页,总计 <span
th:text="${pageInfo.total}"></span> 条记录</p>
<a th:href="@{/admin/goods/list}">首页</a>
<a th:href="@{/admin/goods/list(pageNum=${pageInfo.hasPreviousPage}?${pageInfo.prePage}:1)}">上一页</a>
<a th:href="@{/admin/goods/list(pageNum=${pageInfo.hasNextPage}?${pageInfo.nextPage}:${pageInfo.pages})}">下一页</a>
<a th:href="@{/admin/goods/list(pageNum=${pageInfo.pages})}">尾页</a>
</div>
</div>
六、效果展示
附:PageInfo封装页面信息,返回给前端页面,下表为一些常用参数说明
参数 | 说明 |
---|---|
PageInfo.list | 结果集 |
PageInfo.pageNum | 当前页码 |
PageInfo.pageSize | 当前页面显示的数据条目 |
PageInfo.pages | 总页数 |
PageInfo.total | 数据的总条目数 |
PageInfo.prePage | 上一页 |
PageInfo.nextPage | 下一页 |
PageInfo.isFirstPage | 是否为第一页 |
PageInfo.isLastPage | 是否为最后一页 |
PageInfo.hasPreviousPage | 是否有上一页 |
PageHelper.hasNextPage | 是否有下一页 |
最后:对你有所帮助的话,记得点赞哦!