springboot使用分页插件PageHelper

依赖:

1 <!-- spring boot的分页插件PageHelper -->
2         <dependency>
3             <groupId>com.github.pagehelper</groupId>
4             <artifactId>pagehelper-spring-boot-starter</artifactId>
5             <version>1.2.3</version>
6         </dependency>

重写 PageHelper类,后面直接调用即可

 1 package com.test.controller;
 2 
 3 import com.github.pagehelper.Page;
 4 import com.github.pagehelper.PageInfo;
 5 import com.test.entity.Person;
 6 
 7 import java.util.ArrayList;
 8 import java.util.List;
 9 
10 /**
11  * @author liuwenlong
12  * @create 2021-11-07 13:15:41
13  */
14 @SuppressWarnings("all")
15 public class PageHelper {
16     public  static PageInfo pageHelper(List list, Integer pageNum, Integer pageSize){
17         Page page = new Page(pageNum, pageSize);
18         int total = list.size();
19         page.setTotal(total);
20         int startIndex = (pageNum - 1) * pageSize;
21         int endIndex = Math.min(startIndex + pageSize,total);
22         if(startIndex>endIndex){
23             page.addAll(new ArrayList());
24             PageInfo pageInfo = new PageInfo<>(page);
25             return pageInfo;
26         }else{
27             page.addAll(list.subList(startIndex,endIndex));
28             PageInfo pageInfo = new PageInfo<>(page);
29             return pageInfo;
30         }
31     }
32 }

调用

 1 package com.test.controller;
 2 
 3 import com.github.pagehelper.PageInfo;
 4 import com.test.entity.Person;
 5 import org.springframework.stereotype.Controller;
 6 import org.springframework.ui.Model;
 7 import org.springframework.ui.ModelMap;
 8 import org.springframework.web.bind.annotation.RequestMapping;
 9 import org.springframework.web.bind.annotation.RequestParam;
10 import org.springframework.web.bind.annotation.ResponseBody;
11 import org.springframework.web.servlet.ModelAndView;
12 
13 import javax.servlet.http.HttpServletRequest;
14 import java.util.ArrayList;
15 import java.util.List;
16 
17 /**
18  * @author liuwenlong
19  * @create 2021-11-06 22:52:27
20  */
21 @SuppressWarnings("all")
22 @RequestMapping(value = "testController")
23 @Controller
24 public class PersonController {
25 
26     @RequestMapping(value = "test")
27     public String getAllUser(@RequestParam(value="pageNum",defaultValue="1")Integer pageNum,
28                              HttpServletRequest req,Model mod) {
29 
30 
31         Person person1 = new Person("aaa", "44");
32         Person person2 = new Person("bbb", "34");
33         Person person3 = new Person("vvv", "3333");
34         Person person4 = new Person("dfdfd", "4543");
35         Person person5 = new Person("ere", "4567");
36         Person person6 = new Person("sfa", "7654");
37         Person person7 = new Person("sfe", "4567");
38         Person person8 = new Person("ggee", "7654");
39         Person person9 = new Person("dh3", "567");
40         Person person10 = new Person("eteg", "6543");
41 
42         List<Person> list = new ArrayList<>();
43         list.add(person1);
44         list.add(person2);
45         list.add(person3);
46         list.add(person4);
47         list.add(person5);
48         list.add(person6);
49         list.add(person7);
50         list.add(person8);
51         list.add(person9);
52         list.add(person10);
53 
54         PageHelper pageHelper = new PageHelper();
55         PageInfo pages = pageHelper.pageHelper(list,pageNum,3);
56         mod.addAttribute("PageInfo",pages);
57 
58         return "lwl/Pagehelper/index";
59     }
60 }

实体类

 1 package com.test.entity;
 2 
 3 import javax.persistence.Entity;
 4 
 5 /**
 6  * @author liuwenlong
 7  * @create 2021-11-06 22:51:12
 8  */
 9 @SuppressWarnings("all")
10 @Entity
11 public class Person {
12     private String username;
13     private String password;
14 
15     public Person() {
16     }
17 
18     public Person(String username, String password) {
19         this.username = username;
20         this.password = password;
21     }
22 
23     public String getUsername() {
24         return username;
25     }
26 
27     public void setUsername(String username) {
28         this.username = username;
29     }
30 
31     public String getPassword() {
32         return password;
33     }
34 
35     public void setPassword(String password) {
36         this.password = password;
37     }
38 
39     @Override
40     public String toString() {
41         return "Person{" +
42                 "username='" + username + '\'' +
43                 ", password='" + password + '\'' +
44                 '}';
45     }
46 }

页面

 1 <%--
 2   Created by IntelliJ IDEA.
 3   User: honor
 4   Date: 2021/11/6
 5   Time: 22:58
 6   To change this template use File | Settings | File Templates.
 7 --%>
 8 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 9 <%--引用Java公司(Sun)公司写的标签--%>
10 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
11 <html>
12 <head>
13     <title>aaa</title>
14 </head>
15 <body>
16 <table>
17     <tr>
18         <th>用户名</th>
19         <th>密码</th>
20        
21        
22     </tr>
23     <c:forEach items="${PageInfo.list}" var="y">
24         <tr>
25             <td>${y.username}</td>
26             <td>${y.password}</td>
27         </tr>
28     </c:forEach>
29 
30 
31     <div align="center">
32 
33         <div>
34        <%--当前第${PageInfo.pageNum}页,总共${PageInfo.pages}页,总共${PageInfo.total}条记录--%>
35 
36             <div align="center">
37                 <font size="2">总${PageInfo.total}条记录</font>
38                 <font size="2">共 ${PageInfo.pages}页</font>
39                 <font size="2">第${PageInfo.pageNum}页</font>
40                 <a href="${pageContext.request.contextPath}/testController/test?pageNum=1">首页</a>
41                 <c:choose>
42                     <c:when test="${PageInfo.pageNum - 1 > 0}">
43                         <a href="${pageContext.request.contextPath}/testController/test?pageNum=${PageInfo.pageNum - 1}">上一页</a>
44                     </c:when>
45                     <c:when test="${PageInfo.pageNum - 1 <= 0}">
46                         <a href="${pageContext.request.contextPath}/testController/test?pageNum=1">上一页</a>
47                     </c:when>
48                 </c:choose>
49                 <c:choose>
50                     <c:when test="${PageInfo.pages==0}">
51                         <a href="${pageContext.request.contextPath}/testController/test?pageNum=${PageInfo.pageNum}">下一页</a>
52                     </c:when>
53                     <c:when test="${PageInfo.pageNum + 1 < PageInfo.pages}">
54                         <a href="${pageContext.request.contextPath}/testController/test?pageNum=${PageInfo.pageNum + 1}">下一页</a>
55                     </c:when>
56                     <c:when test="${PageInfo.pageNum + 1 >= PageInfo.pages}">
57                         <a href="${pageContext.request.contextPath}/testController/test?pageNum=${PageInfo.pages}">下一页</a>
58                     </c:when>
59                 </c:choose>
60                 <c:choose>
61                     <c:when test="${PageInfo.pages==0}">
62                         <a href="${pageContext.request.contextPath}/testController/test?pageNum=${PageInfo.pageNum}">尾页</a>
63                     </c:when>
64                     <c:otherwise>
65                         <a href="${pageContext.request.contextPath}/testController/test?pageNum=${PageInfo.pages}">尾页</a>
66                     </c:otherwise>
67                 </c:choose>
68             </div>
69         </div>
70         </div>
71 
72     </div>
73 
74 </table>
75 </body>
76 </html>

原文地址:https://www.cnblogs.com/lwl80/p/15519884.html