layui分页插件

引入相关的js和css

layui:css <link rel="stylesheet" th:href="@{layui/css/layui.css}">
layui:js <script th:src="@{layui/layui.js}"></script>
jquery   <script th:src="@{js/jquery.min.js}"></script>

th:src="@{xxx}" 这个对应的文件路径 当然采用cdn 直接导入链接也可以直接按照html格式去写

CDN 方式

<!-- 引入 layui.css -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/layui/2.6.5/css/layui.min.css">
<!-- 引入 layui.js -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/layui/2.6.5/layui.min.js">
<!-- 引入 jquery.js -->
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>

引入分页插件

    <script th:inline="JavaScript">
layui.use('laypage', function () {
var laypage = layui.laypage;
laypage.render({
elem: 'userpage', //任意一个div 的ID,但不用加 # 号 将分页添加到该div下面
count: [[${session.gzcount}]], //数据总数,后台获取
limit: 5, //每页条数
curr: [[${session.pages}]], //当前页数
layout: ['prev', 'page', 'next', 'skip'], //这里就是一些功能按钮 详情可以阅读 layui的官方文档
jump: function (obj, first) {
//这里是首次不执行,以为当我们异步请求后 需要重新加载该页面获取新的数据 如果直接写在外面 会循环调用 导致页面一直重复加载
if (!first) {
$.ajax({
type: "POST",
url: "/user/gzpages", //接口路径
data: {"pages":obj.curr, //obj.curr得到当前页,以便向服务端请求对应页的数据。
"limit":obj.limit,//obj.limit得到每页显示的条数
},
success: function(data) {
location.reload() //重新加载页面 当然这里可以进行判断 如果后台数据没有改动 可以不用重新加载
},
});
}
}
});
});
</script>

Controller

直接上代码了,

 @RequestMapping("/user/gomygz")
public String mygz(HttpServletRequest request,Model model){
String gzpages =(String) request.getSession().getAttribute("gzpages");
Map finduserfansmap = userService.finduserfansmap(request, gzpages);
/**这个是一个封装参数的方法可以封装到service中 也可以直接放在controller 当然最好封装到Service中
public Map finduserfansmap(HttpServletRequest request, String pages){
String limit =(String) request.getSession().getAttribute("limit");
String pages=(String) request.getSession().getAttribute("pages");
Map map=new HashMap();
int pages1=1,limit1=5; //初始化参数 (当前页 和每页条数)
if (pages!=null&&limit!=null){ //第一次进入页面 session pages limit 是空的 我们就直接用最初的值 当异步请求创建了session 后我们就用 session的值
pages1 = Integer.valueOf(pages);
limit1 = Integer.valueOf(limit);
}
map.put("start",pages1*limit1-limit1);
map.put("end",pages1*limit1);
return map;
}
**/
List<Fansmsg> relations = userService.findto_userid(finduserfansmap);
request.getSession().setAttribute("mygz",relations);
return "user/mygz";
}
//切换页码的请求
@RequestMapping("/user/gzpages")
@ResponseBody
public int gzpages(String pages,String limit,HttpServletRequest request){
//将参数封装到session里面 每次请求都会更新session的值
request.getSession().setAttribute("pages",pages);
request.getSession().setAttribute("limit",limit);
return 1;
}

Mapper

就是一个简单的SQL语句

   <select id="xxx" parameterType="map" resultType="pojo">
select * from table where 查询条件 limit #{start},#{end}
</select>

这样就可以实现了

当然用vue 可以双向绑定 前后端分离 后端只负责提供各种json数据 前端用vue 遍历数据 就比这简单多了

最新文章

  1. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q136-Q138)
  2. NSDate 时间
  3. 转载:更换zImage中的initramfs
  4. 深入学习微框架:Spring Boot - NO
  5. bouncycastle创建csr
  6. MVC + LigerUI 做后台管理还真是清爽
  7. mysql主从数据库复制
  8. php实现两分法查找
  9. jquery提交form表单插件jquery.form.js
  10. ftp服务器使用-windowsftp服务起搭建
  11. Burpsuite Sqlmap Nmap入门总结
  12. 20165206 2017-2018-2 《Java程序设计》第三周学习总结
  13. __FILES__
  14. emoji表情与unicode编码互转(JS,JAVA,C#)
  15. 如何查看MySQL的当前存储引擎?
  16. ECCV 2018 | 旷视科技提出统一感知解析网络UPerNet,优化场景理解
  17. Java中String,StringBuffer和StringBuilder的区别(转载)
  18. 20155209 2016-2017-2 《Java程序设计》第1周学习总结
  19. SGU495Kids and Prizes(数学期望||概率DP||公式)
  20. GAN作用——在我做安全的看来,就是做数据拟合、数据增强

热门文章

  1. Docker的深入浅出
  2. RabbitMQ 入门 (Go) - 5. 使用 Fanout Exchange 做服务发现(下)
  3. Spring MVC(七篇)
  4. (七)Struts2Action访问Servlet API
  5. JVM--Java核心面试知识整理(一)
  6. 面试题:让你捉摸不透的 Go reslice
  7. Django 模板(Template)
  8. kubernetes集群证书更新
  9. UT之最后一测
  10. Nginx配置图片请求