添加分页插件,MyBatisPlus3.4以后版本使用:
@Configurationpublic class MyBatisConfig {@Beanpublic MybatisPlusInterceptor paginationInterceptor() {MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();// 开启 count 的 join 优化,只针对部分 left join//这是分页拦截器PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认falsepaginationInnerInterceptor.setOverflow(true);// 设置最大单页限制数量,默认 500 条,-1 不受限制paginationInnerInterceptor.setMaxLimit(500L);mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);return mybatisPlusInterceptor;}}
Controller:
/** @Description: 分页功能* @Author: WangZiYao* @Date: 2021/4/21 17:00*/@GetMapping(value = "/dynamic_table")public String dynamicTable(@RequestParam(value = "pn",defaultValue = "1") Integer pn,//获取第几页,页码。Model model){//查询数据库所有的数据List<Person> list = personService.list();//分页查询的数据pn为第几页,每页显示2条数据Page<Person> userPage = new Page<>(pn, 2);//分页查询的结果Page<Person> page = personService.page(userPage, null);//List<Person> records = page.getRecords();model.addAttribute("page",page);return "table/dynamic_table";}/** @Description: 删除功能* @Author: WangZiYao* @Date: 2021/4/21 17:00*/@GetMapping(value = "/person/delete/{id}")public String deletePerson(@PathVariable("id") Integer id,//获取要删除的记录的id@RequestParam(value = "pn",defaultValue = "1") Integer pn,//获取要删除时,停留在的页码。RedirectAttributes ra){//重定向域ra.addAttribute("pn",pn);//重定向后会被,上面的方法获取到。personService.removeById(id);return "redirect:/dynamic_table";}
<table class="display table table-bordered" id="hidden-table-info"><thead><tr><th>#</th><th>用户名</th><th>性别</th><th>年龄</th><th>电话</th></tr></thead><tbody><tr class="gradeX" th:each="user,stat:${page.records}">//<td th:text="${stat.count}"></td><td th:text="${user.username}"></td><td th:text="${user.gender}"></td><td th:text="${user.age}"></td><td>[[${user.phone}]]</td><!--th:href="@{/user/delete/{id}(id=${user.id},pn=${page.current})}"其中/user/delete/{id} 为跳转到的地址。(id=${user.id},pn=${page.current})中 id=${user.id} 是为地址中的id赋值,pn=${page.current} 是 地址追加 当前页码--><td><a th:href="@{/person/delete/{id}(id=${user.id},pn=${page.current})}"class="btn btn-danger btn-sm" type="button">删除</a></td></tr></tbody></table><div class="row-fluid"><div class="span6"><div class="dataTables_info" id="dynamic-table_info">当前第[[${page.current}]]页 总计 [[${page.pages}]]页 共[[${page.total}]]条记录</div></div><div class="span6"><div class="dataTables_paginate paging_bootstrap pagination"><ul><li class="prev disabled"><a href="#">← 前一页</a></li><!--th:class="${num == page.current?'active':''}" 当num等于当前页,给active用于获取样式,被选中高亮--><li th:class="${num == page.current?'active':''}"th:each="num:${#numbers.sequence(1,page.pages)}" ><!--从第一页开始到最后一页,显示出来每个页码(1234567)--><a th:href="@{/dynamic_table(pn=${num})}">[[${num}]]</a><!--给提交地址上加上总页码号--></li><li class="next disabled"><a href="#">下一页 → </a></li></ul></div></div></div>

