ssm如何使用pagehelper进行分页
最近在写ssm分页的时候遇到了一些麻烦,在此记录一下,顺便总结一下ssm使用pageHelper的过程。
1.首先在配置文件中引入依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2.在mybatis-config.xml中添加插件
<!--引入pageHelper分页插件,注意plugin标签位置-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
3.在controller中编写:
// 分页获取书籍
@RequestMapping("/getAll")
private String getAll(Model model, @RequestParam(required = false,defaultValue = "1",value = "page")Integer page ){
PageHelper.startPage(page, 5);
List<Book> books =bookService.getAll();
PageInfo<Book> pageInfo = new PageInfo(books, 5);
// model.addAttribute("books", books);
model.addAttribute("pageInfo", pageInfo);
if (books!=null)
return "books";
return "failed";
}
4.在books.jsp中遍历集合拿到数据
-%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
<html>
<head>
<title>Title</title>
</head>
<body>
<div class="container-sm">
<table class="table">
<thead>
<tr>
<th scope="col">序号</th>
<th scope="col">书名</th>
<th scope="col">价格</th>
<th scope="col">作者</th>
<th scope="col">数量</th>
</tr>
</thead>
<c:forEach items="${requestScope.pageInfo.list}" var="keyword">
<tbody>
<tr>
<th scope="row">${keyword.bookId}</th>
<td>${keyword.bookName}</td>
<td>${keyword.bookPrice}</td>
<td>${keyword.bookWriter}</td>
<td>${keyword.bookNum}</td>
</tr>
</tbody>
</c:forEach>
</table>
</div>
<div class="row">
<div class="col-md-6">
第${pageInfo.pageNum}页,共${pageInfo.pages}页,共${pageInfo.total}条记录
</div>
<div class="col-md-6 offset-md-4">
<nav aria-label="Page navigation example">
<ul class="pagination pagination-sm">
<li class="page-item"><a class="page-link" href="/book/getAll?page=1">首页</a></li>
<c:if test="${pageInfo.hasPreviousPage}">
<li class="page-item"><a class="page-link"
href="/book/getAll?page=${pageInfo.pageNum-1}">上一页</a></li>
</c:if>
<c:forEach items="${pageInfo.navigatepageNums}" var="page">
<c:if test="${page==pageInfo.pageNum}">
<li class="page-item active"><a class="page-link" href="#">${page}</a></li>
</c:if>
<c:if test="${page!=pageInfo.pageNum}">
<li class="page-item"><a class="page-link"
href="/book/getAll?page=${page}">${page}</a></li>
</c:if>
</c:forEach>
<c:if test="${pageInfo.hasNextPage}">
<li class="page-item"><a class="page-link"
href="/book/getAll?page=${pageInfo.pageNum+1}">下一页</a></li>
</c:if>
<li class="page-item"><a class="page-link" href="/book/getAll?page=${pageInfo.pages}">末页</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
</body>
</html>