Bootstrap Paginator+PageHelper实现分页效果


Posted in Javascript onDecember 29, 2018

最近需要做一个分页,找了挺多的前端分页效果,发现Bootstrap Paginator分页插件效果不错,而我页面也是用BootStrap做的响应式页面,就做了实现一个简单的分页效果。

PageHelper地址

Bootstrap Paginator地址

在SpringBoot+Mybatis做分页

1.首先添加maven依赖

<dependency>
 <groupId>com.github.pagehelper</groupId>
 <artifactId>pagehelper</artifactId>
 <version>4.1.6</version>
</dependency>

2.添加一个PageHelperConfig配置类

@Configuration
public class PageHelperConfig {
 @Bean
 public PageHelper pageHelper(){
 PageHelper pageHelper = new PageHelper();
 Properties properties = new Properties();
 properties.setProperty("offsetAsPageNum", "true");
 properties.setProperty("rowBoundsWithCount", "true");
 properties.setProperty("reasonable", "true");
 properties.setProperty("reasonable","true");
 properties.setProperty("pageSizeZero", "true");
 pageHelper.setProperties(properties);
 return pageHelper;
 }
}

3.写一个用来存储分页信息的对象

public class PageBean<T> implements Serializable {
 private static final long serialVersionUID = 1L;
 private long total; //总记录数
 private List<T> list; //结果集
 private int pageNum; //第几页
 private int pageSize; //每页记录数
 private int pages; // 总页数
 private int size; //当前页的数量<=pageSize

 public PageBean(List<T> list){
 if (list instanceof Page){
  Page<T> page = (Page<T>) list;
  this.pageNum = page.getPageNum();
  this.pageSize = page.getPageSize();
  this.total = page.getTotal();
  this.pages = page.getPages();
  this.list = page;
  this.size = page.size();
 }
 }
 public long getTotal() {
 return total;
 }
 public void setTotal(long total) {
 this.total = total;
 }
 public List<T> getList() {
 return list;
 }

 public void setList(List<T> list) {
 this.list = list;
 }
 public int getSize() {
 return size;
 }
 public void setSize(int size) {
 this.size = size;
 }
 public int getPageNum() {
 return pageNum;
 }
 public void setPageNum(int pageNum) {
 this.pageNum = pageNum;
 }
 public int getPageSize() {
 return pageSize;
 }

 public void setPageSize(int pageSize) {
 this.pageSize = pageSize;
 }
 public int getPages() {
 return pages;
 }
 public void setPages(int pages) {
 this.pages = pages;
 }
}

4.在Service接口和实现上,我们可以查询到的把数据传到PageBean

public interface ArticleService {
 PageBean<Article> selectArticleList(int pageNum, int pageSize);
}

@Service
public class ArticleServiceImpl implements ArticleService {
 @Autowired
 private ArticleMapper articleMapper;
 public PageBean<Article> selectArticleList(int pageNum, int pageSize) {
 PageHelper.startPage(pageNum, pageSize);
 List<Article> list = this.articleMapper.selectArticleList();
 return new PageBean<>(list);
 }
}

5.Controller

@RestController
public class ArticleJsonController {
 @Autowired
 private ArticleService articleService;
 @GetMapping("/articleManage/articlePageBean")
 public PageBean articlePageBean(int pageNum, int pageSize) {
 PageBean<Article> pageBean = this.articleService.selectArticleList(pageNum, pageSize);
 return pageBean;
 }
}

6.页面用Ajax无刷新分页,添加Bootstrap Paginator插件,bootstrap-paginator.js和bootstrap-responsive.min.css样式

<div id="content" class="container"></div>
<div class="container">
 <div class="panel col-sm-10 panel-default">
 <div class="panel-body reply-top media">
  <div id="page"></div>
 </div>
 </div>
</div>

function pagehtml(pageNum) {
 var articleid = $("#articleNum").val();
 if (pageNum == 0){
 pageNum=1;
 } else {
 pageNum=pageNum;
 }
 $.ajax({
 url:"/TsengBlog/article/replyPage",
 type:"get",
 dataType:"json",
 data: {pageNum : pageNum, pageSize : 5, articleid : articleid },
 success:function (data) {
  var options = {
  alignment:"center",//居中显示




currentPage: data.pageNum,//当前页数





totalPages: data.pages,//总页数 注意不是总条数





pageUrl: function(type, page, current){
   if (page==current) {
   return "javascript:void(0)";
   } else {
   return "javascript:pagehtml("+page+")";
   }
  }
  };
  var html="";
  $.each(data.list, function (i, obj) {
  html += '<div class="panel col-sm-10 panel-default">'+
   '<div class="panel-body reply-top media">'+
   '<div class="col-sm-3 col-md-2 media-left">'+
   '<img src="image/Tseng.png" class="img-circle img-thumbnail" />'+
   '<p class="p-css">'+obj.name+'</p>'+
   '</div>'+
   '<div class="col-sm-10">'+
   '<div class="text-right">#'+i+'</div>'+
   '<hr/>'+
   '<div class="reply-content">'+
   '<span>'+obj.content+'</span>'+
   '</div>'+
   '</div>'+
   '</div>'+
   '</div>';
  });
  $("#content").empty();
  $("#content").append(html);
  $("#page").bootstrapPaginator(options);
 },
 error:function (error) {
  alert("error");
 }
 });
}

如果是Maven+SSM的,SSM整合就不多说了,网上有很多博客和例子整合。

1.mybatis.xml配置

<configuration>
 <plugins>
 <plugin interceptor="com.github.pagehelper.PageHelper">
  <property name="dialect" value="mysql" />
  <property name="pageSizeZero" value="true" />



<property name="offsetAsPageNum" value="true" />





<property name="reasonable" value="true" />




<property name="rowBoundsWithCount" value="true" />
 </plugin>
 </plugins>
</configuration>

2.service

public PageInfo page(pageNum, pageSize){
 PageHelper.startPage(pageNum, pageSize);
 List<ShopNav> lists = navService.getAllNav();
 PageInfo<ShopNav> pageInfo = new PageInfo<ShopNav>(lists);
return PageInfo; 
}

页面效果展示

Bootstrap Paginator+PageHelper实现分页效果

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 学习之旅 (2)
Feb 05 Javascript
js给onclick事件赋值,动态传参数实例解说
Mar 28 Javascript
关于JS字符串函数String.replace()
Apr 07 Javascript
Javascript中封装window.open解决不兼容问题
Sep 28 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
Js 获取当前函数参数对象的实现代码
Jun 20 Javascript
js对字符串进行编码的方法总结(推荐)
Nov 10 Javascript
JavaScript瀑布流布局实现代码
May 06 Javascript
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
js 提取某()特殊字符串长度的实例
Dec 06 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
Aug 27 Javascript
vue结合el-upload实现腾讯云视频上传功能
Jul 01 Javascript
玩转Koa之核心原理分析
Dec 29 #Javascript
如何从0开始用node写一个自己的命令行程序
Dec 29 #Javascript
bootstrap与pagehelper实现分页效果
Dec 29 #Javascript
微信小程序实现滑动切换自定义页码的方法分析
Dec 29 #Javascript
vue实现分页组件
Jun 16 #Javascript
如何用RxJS实现Redux Form
Dec 29 #Javascript
Vue.js结合bootstrap前端实现分页和排序效果
Dec 29 #Javascript
You might like
laravel学习教程之关联模型
2016/07/30 PHP
发现的以前不知道的函数
2006/09/19 Javascript
Javascript 构造函数 实例分析
2008/11/26 Javascript
JS 自动安装exe程序
2008/11/30 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
jQuery使用contains过滤器实现精确匹配方法详解
2016/02/25 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
python操作sqlite的CRUD实例分析
2015/05/08 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python中如何获取类属性的列表
2016/12/26 Python
Python正则表达式匹配中文用法示例
2017/01/17 Python
深入探究Django中的Session与Cookie
2017/07/30 Python
python表格存取的方法
2018/03/07 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
2020/05/26 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
安踏官方商城:anta.cn
2019/12/16 全球购物
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
2016年父亲节寄语
2015/12/04 职场文书
mysql查询结果实现多列拼接查询
2022/04/03 MySQL