在SSM框架下用laypage和ajax实现分页和数据交互的方法


Posted in Javascript onSeptember 27, 2019

layui,一款前端框架,提供了丰富的组件和模板,layui提供的简约后台管理模板,对于后端学习者来说是个不错的福音。这里记录在SSM框架下使用layui的分页组件laypage。(官网开发文档)

环境 Spring+SpringMVC+Mybatis , jquery-3.1.0.min.js , mysql-connector-java-5.1.34

参考文档 layui-laypage参数文档

前端代码主要参考的是layui官网给定的代码,加载layui.css和layui.js;除此之外,介于接下来用ajax与后台进行数据交互,因此这里也需要加载jquery的文件,我这里加载的是jquery-3.1.0-min.js。

主要代码如下:

<div id="demo"></div> //定义分页
<script type="text/javascript">
var url = "http://localhost:8080/HRM/";
$(document).ready(function(){
  layui.use(['form','laypage', 'layer'], function(){
  var laypage = layui.laypage,layer = layui.layer;
  laypage({
  cont: 'demo', //跟页面前面div的id一样
  pages: ${endPage} , //总页数
  groups: 5 , //连续显示分页数
  jump: function(obj, first){
  //得到了当前页,用于向服务端请求对应数据
  var curr = obj.curr -1;
  var self = this;
  $.ajax({
   //这里省略了ajax数据交互
  });
 });
});
</script>

后端采用SpirngMVC和Mybatis进行数据处理。

创建Dao接口

List<Jobinfo> selectPageInfoByDel(@Param("start") int start); //获取页面数据
int countNumber(); //记录总的条数

编写Mapper.xml

这里主要用到了mysql的limit,limit从下标0开始,limit0,8表示的是从下标0开始,查询8条数据。

<select id="selectPageInfoByDel" resultMap="BaseResultMap" parameterType="java.lang.Integer">
  select id,c_id,job,number,salary,more_salary,date from jobinfo where is_del = 1 order by id DESC limit #{start,jdbcType=INTEGER},8
</select>
<select id="countNumber" resultType="java.lang.Integer">
  select count(*) from jobinfo where is_del =1
</select>

创建一个Page的pojo类

public class Page<T> implements Serializable {
 private static final long serialVersionUID = 337297181251071639L;
 private Integer page;//当前页
 private Integer rows;//页大小
 private Integer totalRecord;// 总记录数
 private Integer firstPage; //首页
 private Integer endPage; //末页 
 private List<T> list;//页面数据列表
 //这里省略的get和set的方法
}

创建Service接口

//查看分页的信息
public List<Jobinfo> selectPageInfo(int page);
//查看所有信息的总数
int getCount();

创建Service的实现类impl

//这里省略了Dao的实例化,只显示service接口的实现方法
public List<Jobinfo> selectPageInfo(int page) {
 int rows = 8; //一页显示8条数据
 int start = page*rows; //这里表示数据库从第几条数据开始查询(limit从下标0开始)
 return jobDao.selectPageInfoByDel(start);
}
public int getCount() {
 return jobDao.countNumber();
}

编写Controller

@RequestMapping("page")
public @ResponseBody Page<Jobinfo> selectPageInfo(HttpServletRequest request, Model model,@RequestParam("start") int start){
  List<Jobinfo> list= jobinfoService.selectPageInfo(start);
 Page<Jobinfo> pageInfo = new Page<Jobinfo>();
 int count = jobinfoService.getCount(); //获取总数
 int endPage = 0;
 //8条数据为一页
 if(jobinfoService.getCount()%8==0){
  endPage = jobinfoService.getCount()/8;
 }else{
  endPage = jobinfoService.getCount()/8 +1 ;
 } 
 pageInfo.setPage(start+1);
 pageInfo.setTotalRecord(count);
 pageInfo.setList(list);
 pageInfo.setRows(8);
 pageInfo.setFirstPage(1);
 pageInfo.setEndPage(endPage);
 return pageInfo;
}

运行结果

在SSM框架下用laypage和ajax实现分页和数据交互的方法

事实上,整体功能的实现在页面与后台用ajax传递数据那一块花费了一下时间,因为第一次接触到layui,也渐渐感受到了layui与传统ajax数据传递的不同,layui对方法进行了封装,因此用ajax传数据的时候也需依于框架进行。

以上这篇在SSM框架下用laypage和ajax实现分页和数据交互的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
Sep 22 Javascript
javascript 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
JS 判断undefined的实现代码
Nov 26 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 Javascript
理解Javascript_08_函数对象
Oct 15 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 Javascript
微信小程序自定义导航栏
Dec 31 Javascript
微信小程序实现搜索功能并跳转搜索结果页面
May 18 Javascript
vue中datepicker的使用教程实例代码详解
Jul 08 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
Vue 监听元素前后变化值实例
Jul 29 Javascript
H5 js点击按钮复制文本到粘贴板
Nov 19 Javascript
layui+SSM的数据表的增删改实例(利用弹框添加、修改)
Sep 27 #Javascript
vue实现在线翻译功能
Sep 27 #Javascript
webpack 处理CSS资源的实现
Sep 27 #Javascript
微信小程序 wxParse插件显示视频问题
Sep 27 #Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 #Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 #Javascript
vue实现全匹配搜索列表内容
Sep 26 #Javascript
You might like
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
简单的页面缓冲技术
2006/10/09 PHP
落伍首发 php+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
PHP获取当前执行php文件名的代码
2017/03/02 PHP
PHP基于面向对象实现的留言本功能实例
2018/04/04 PHP
jquery.post用法之type设置问题
2014/02/24 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
js canvas实现擦除动画
2016/07/16 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
Python一行代码解决矩阵旋转的问题
2019/11/30 Python
tensorflow使用CNN分析mnist手写体数字数据集
2020/06/17 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
汽车装潢店创业计划书范文
2014/02/05 职场文书
战略合作意向书范本
2014/04/01 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
大学生社会实践评语
2014/04/25 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
2014年消防工作总结
2014/11/21 职场文书
宾馆前台接待岗位职责
2015/04/02 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书
2015年暑假工作总结
2015/07/13 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Django程序的优化技巧
2021/04/29 Python
python疲劳驾驶困倦低头检测功能的实现
2022/04/04 Python