最终效果图 ,差不多就这样
导入pom依赖的分页插件(bootstrap 和 thymeleaf 我就不写了)
<!-- 分页插件 --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.5</version> </dependency>PageInfo属性解释
public class PageInfo<T> extends PageSerializable<T> { private int pageNum;//当前页码 private int pageSize;//每页数量 private int size;//当前页的数量 private int startRow;//当前页面第一个元素在数据库中的行号 private int endRow;//当前页面最后一个元素在数据库中的行号 private int pages;//总页数 private int prePage;//前一页 private int nextPage;//后一页 private boolean isFirstPage;//是否是第一页 private boolean isLastPage;//是否是最后一页 private boolean hasPreviousPage;//是否有前一页 private boolean hasNextPage;//是否有后一页 private int navigatePages;//导航栏页码数 private int[] navigatepageNums;//所有导航栏号 private int navigateFirstPage;//显示的导航栏的第一页 private int navigateLastPage;//显示的导航的最后一页//似乎不完整 total 总记录数 List<T>list 结果集(每页显示的数据)
获取所有数据(注解版的mybatis)
@Select("select * from tb_user") public List<User> findUserList();controller:(注意涂颜色的地方)
@GetMapping("/stuList") public ModelAndView page(@RequestParam(required = false, defaultValue = "1", value = "pn") Integer pn, Model model) { //pageSize:当前页面显示数据条数 PageHelper.startPage(pn, 10);
List<User> users = userService.findUserList(); model.addAttribute("students", users);
//navigatePages:导航栏页码数 PageInfo<User> pageInfo = new PageInfo(users, 5);
return new ModelAndView("admin/studentList", "pageInfo", pageInfo); }
显示页(注意红色地方,)
<div class="row"> <div class="col-md-6"> <h5>当前第[[${pageInfo.pageNum }]]页,总[[${pageInfo.pages }]]页,总[[${pageInfo.total }]]条记录 </h5> </div> <div class="col-md-6"> <nav aria-label="Page navigation"> <ul class="pagination"> <!--首页 和 上一页--> <li> <a th:href="@{/stuList}" class="btn btn-sm"> 首页 </a> </li> <th:if test="${pageInfo.hasPreviousPage - 1} > 0"> <li> <a th:href="@{/stuList(pn=${pageInfo.pageNum - 1})}" aria-label="Previous" class="btn btn-sm" data-th-classappend="${(pageInfo.pageNum - 1) eq 0} ? 'disabled' : ''"> < </a> </li> </th:if> <!--迭代生成页码--> <li> <a th:each="i:${pageInfo.navigatepageNums}" th:href="@{/stuList(pn=${i})}" th:text="${i}" class="btn btn-sm" data-th-classappend="${(pageInfo.pageNum) eq i} ? 'btn-info' : ''"> </a> </li> <!--下一页 和 末页--> <th:if test="${pageInfo.hasNextPage }"> <li> <a aria-label="Next" class="btn btn-sm" th:href="@{/stuList(pn=${pageInfo.pageNum + 1})}" data-th-classappend="${(pageInfo.pageNum) eq (pageInfo.pages)} ? 'disabled' : ''"> > </a> </li> </th:if> <li> <a th:href="@{/stuList(pn=${pageInfo.pages})}" class="btn btn-sm"> 末页 </a> </li> </ul> </nav> </div> </div>淡紫色的地方是对上一页和下一页的判断是否禁用
到此如果顺利的话就大功告成了