ssm使用pageHelper进行分页

it2025-12-26  5

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>

查看运行效果

最新回复(0)