在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 相关文章推荐
js函数调用的方式
May 06 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
Feb 21 Javascript
Angular.js回顾ng-app和ng-model使用技巧
Apr 26 Javascript
Javascript前端经典的面试题及答案
Mar 14 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
Angular4自制一个市县二级联动组件示例
Nov 21 Javascript
vue监听对象及对象属性问题
Aug 20 Javascript
深入理解移动前端开发之viewport
Oct 19 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
详解Vue中组件的缓存
Apr 20 Javascript
javascript实现简单打字游戏
Oct 29 Javascript
基于原生js实现九宫格算法代码实例
Jul 03 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
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
深入eAccelerator与memcached的区别详解
2013/06/06 PHP
php类的自动加载操作实例详解
2016/09/28 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
Document对象内容集合(比较全)
2010/09/06 Javascript
JS 面向对象之神奇的prototype
2011/02/26 Javascript
jquery实现鼠标拖动图片效果示例代码
2014/01/09 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
vue-router3.0版本中 router.push 不能刷新页面的问题
2018/05/10 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
python自动脚本的pyautogui入门学习
2020/04/01 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
2014年会演讲稿范文
2014/01/06 职场文书
圣诞节红领巾广播稿
2014/02/03 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
企业出纳岗位职责
2014/03/12 职场文书
气象学专业个人求职信
2014/03/15 职场文书
大雁塔英文导游词
2015/02/10 职场文书
工作简报范文
2015/07/21 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python