在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 相关文章推荐
Jquery ui css framework
Jun 28 Javascript
stream.js 一个很小、完全独立的Javascript类库
Oct 28 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
Jan 05 Javascript
JS实现的幻灯片切换显示效果
Sep 07 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
Apr 18 Javascript
js动态引入的四种方法
May 05 Javascript
Promise扫盲贴
Jun 24 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
Jun 29 Javascript
解决layui弹出层layer的area过大被遮挡的问题
Sep 21 Javascript
详解如何修改 node_modules 里的文件
May 22 Javascript
在vue中通过render函数给子组件设置ref操作
Nov 17 Vue.js
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
将数组写入txt文件 var_export
2009/04/21 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
Javascript里使用Dom操作Xml
2006/09/20 Javascript
js 字符串操作函数
2009/07/25 Javascript
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
JavaScript对Json的增删改属性详解
2016/06/02 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
webpack3之loader全解析
2017/10/26 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
Python中的yield浅析
2014/06/16 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
利用python求积分的实例
2019/07/03 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python闭包装饰器使用方法汇总
2020/06/29 Python
python中二分查找法的实现方法
2020/12/06 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
市场部管理制度
2014/02/02 职场文书
研修第一天随笔感言
2014/02/15 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
连带责任保证书
2014/04/29 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
优化Mysql查询的示例
2022/04/26 MySQL
Nginx安装配置详解
2022/06/25 Servers