使用的是:Mybatis-Plus的分页插件
https://baomidou.gitee.io/mybatis-plus-doc/#/?id=%E7%AE%80%E4%BB%8B

1、Mapper.java

List<SysUser> selectPageUserList(Page page, SysUser user);

2、serviceImpl

    public Page<SysUser> selectUserPage(SysUser user, Integer current, Integer pageSize) {
Page<SysUser> page = new Page<SysUser>(current, pageSize);// 当前页,总条数 构造 page 对象
//sql优化,OptimizeCountSql默认为true,优化,不执行select count(1)操作
//page.setOptimizeCountSql(false);
// 查询总记录数,默认是查询
// page.setSearchCount(false);
// 注意!! 分页 total 是经过插件自动 回写 到传入 page 对象
return page.setRecords(baseMapper.selectPageUserList(page, user));
}

3、controller

@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public ModelAndView doList(SysUser su, SplitPage splitPage){ ModelAndView mav = new ModelAndView("m/user/listUser"); Page<SysUser> pageInfo = sysUserService.selectUserPage(su,splitPage.getPageNumber(),splitPage.getPageSize()); PageInfo<SysUser> pageResult = new PageInfo<SysUser>(); pageResult.setPageSize(splitPage.getPageSize());
// 返回当前页码
pageResult.setPage(pageInfo.getCurrent());
// 返回总记录数
pageResult.setRecords(pageInfo.getTotal());
// 返回总页数
pageResult.setTotal(pageInfo.getPages());
// 返回查询数据
pageResult.setRows(pageInfo.getRecords()); mav.addObject("pageInfo",pageResult); return mav;
}
@RequestMapping(value = "/userData", method = RequestMethod.POST)
@ResponseBody
public ModelAndView getData(SysUser su, SplitPage splitPage){ ModelAndView mav = new ModelAndView("m/user/user :: userData"); Page<SysUser> pageInfo = sysUserService.selectUserPage(su,splitPage.getPageNumber(),splitPage.getPageSize()); PageInfo<SysUser> pageResult = new PageInfo<SysUser>(); pageResult.setPageSize(splitPage.getPageSize());
// 返回当前页码
pageResult.setPage(pageInfo.getCurrent());
// 返回总记录数
pageResult.setRecords(pageInfo.getTotal());
// 返回总页数
pageResult.setTotal(pageInfo.getPages());
// 返回查询数据
pageResult.setRows(pageInfo.getRecords()); mav.addObject("pageInfo",pageResult); return mav;
}

4、html页面(thymeleaf)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div th:fragment="page(url,searchForm,tablelist)" class="col-xs-12">
<div class="col-xs-6">
<div class="dataTables_info" id="dynamic-table_info" role="status" aria-live="polite">
共<strong th:text="${pageInfo.records}"/>条数据
</div>
</div>
<div class="col-xs-6">
<div class="dataTables_paginate paging_simple_numbers" id="table_paginate"> <input th:hidden="true" id="pageNumber" name="pageNumber" th:value="${pageInfo.page}"/>
<!-- 处理页数小于等于7 的情况 -->
<ul th:if="${(pageInfo.total le 7)&&(pageInfo.total gt 0)}" class="pagination">
<li th:if="${pageInfo.page eq 1}" class="page-item disabled"><a class="page-link" href="#">上一页</a></li>
<li th:if="${pageInfo.page gt 1}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'-1)'" >上一页</a>
</li> <li th:each="index:${#numbers.sequence(1,pageInfo.total)}" th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'"
th:text="${index}"></a>
</li> <li th:if="${pageInfo.page eq pageInfo.total}" class="page-item disabled">
<a class="page-link" href="#">下一页</a>
</li>
<li th:if="${pageInfo.page lt pageInfo.total}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'+1)'">下一页</a>
</li>
</ul> <!-- 处理页数大于7 的情况 -->
<ul th:if="${pageInfo.total gt 7}" class="pagination">
<li th:if="${pageInfo.page eq 1}" class="page-item disabled">
<a class="page-link" href="#">上一页</a>
</li> <li th:if="${pageInfo.page gt 1}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'-1)'">上一页</a>
</li> <!-- 首页 -->
<li th:classappend="${pageInfo.page eq 1}?'active'" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+'1)'">1</a>
</li> <!-- 当前页面小于等于7 -->
<li th:if="${pageInfo.page le 4}" th:each="index:${#numbers.sequence(2,5)}"
th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'" class="page-link" th:text="${index}"></a>
</li> <li th:if="${pageInfo.page le 4}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+'6)'">...</a>
</li> <!-- 最后一页与当前页面之差小于等于3 -->
<li th:if="${pageInfo.total-pageInfo.page le 3}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.total}+'-5)'">...</a>
</li> <li th:if="${pageInfo.total-pageInfo.page le 3}" th:each="index:${#numbers.sequence(pageInfo.total-4,pageInfo.total-1)}"
th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'" class="page-link" th:text="${index}"></a>
</li> <!-- 最后一页与当前页面之差大于3 且当前页面大于4 -->
<li th:if="${(pageInfo.page gt 4) && (pageInfo.total-pageInfo.page gt 3)}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'-2)'">...</a>
</li> <li th:if="${(pageInfo.page gt 4) && (pageInfo.total-pageInfo.page gt 3)}" th:each="index:${#numbers.sequence(pageInfo.page-1,pageInfo.page+1)}"
th:classappend="${index eq pageInfo.page}?'active'" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${index}+'\')'" th:text="${index}"></a>
</li> <li th:if="${(pageInfo.page gt 4) && (pageInfo.total-pageInfo.page gt 3)}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'+2)'">...</a>
</li> <!-- 尾页 -->
<li th:classappend="${pageInfo.page eq pageInfo.total}?'active'" class="page-item">
<a class="page-link"href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\',\''+${pageInfo.total}+'\')'" th:text="${pageInfo.total}"></a>
</li> <li th:if="${pageInfo.page eq pageInfo.total}" class="page-item disabled">
<a class="page-link" href="#">下一页</a>
</li> <li th:if="${pageInfo.page lt pageInfo.total}" class="page-item">
<a class="page-link" href="javascript:void(0);" th:onclick="'javascript:splitPageLink(\''+${url}+'\',\''+${searchForm}+'\',\''+${tablelist}+'\','+${pageInfo.page}+'+1)'">下一页</a>
</li> </ul> </div>
</div>
</div>
</body>
</html>

5、js

function splitPageLink(url,searchForm,tablelist,toPage) {
$("#table_paginate select[name=pageNumber],input[name=pageNumber] ").val(toPage);
ajaxLoad(url,$.param({'pageNumber': toPage}) + '&' +$("#"+searchForm+"").serialize(),'lu_user_list'); }
function ajaxLoad(url,data,loadTable){
$.ajax({
type:"post",
url:url,
data: data,
contentType:"application/x-www-form-urlencoded; charset=UTF-8",
dataType:
"html",
async:
false,//同步
success:function (result) {
$("#"+loadTable+"").html(result);
}
}) }

最新文章

  1. C#中的WebBrowser控件的使用
  2. NERD_commenter——VIM批量注释与反注释插件
  3. &#39;UIShell.OSGi.MvcWebExtension.BundleRuntimeControllerFactory&#39; did not return a controller for the name &#39;Home&#39;.
  4. windows下python的包管理器pip安装
  5. Yours 的博客开张啦!
  6. [转]STL的内存分配器
  7. Atitit.web三编程模型 Web Page Web Forms 和 MVC
  8. BZOJ2157 旅行 模拟
  9. java :instanceof用法
  10. Java并发之AQS详解
  11. java获取类加载路径和项目根路径的5种方法
  12. eclipse安装插件配置Android开发环境
  13. Delphi7通过superobject解析JSON
  14. 构建配置 ProGuard Shrink 混淆和压缩
  15. vs自己主动生成的WebService配置文件在部署到IIs6后,服务调用失败的解决方法
  16. Hadoop2.6 安装布置问题总结(单机、分布式)
  17. 常用工具软件之串口终端工具——SecureCRT和xshell
  18. MyBatis 网络资料
  19. 【转】实现Ribbon风格的窗体
  20. Ubuntu桌面操作快捷键

热门文章

  1. quartz2.2.1bug
  2. altium designer 画板 电子元器件的名称不能集体修改
  3. JS中的let变量
  4. 实现文件上下文管理(\_\_enter\_\_和\_\_exit\_\_)
  5. 脚本kafka-configs.sh用法解析
  6. 吴裕雄--天生自然TensorFlow高层封装:解决ImportError: cannot import name &#39;tf_utils&#39;
  7. vim删除所有
  8. 写入简单的日志log
  9. Docker相关学习地址
  10. 在线好用的json转xml超级好用在线json与xml互相转换