PageHelper分页插件使用

2023-10-29

http://blog.csdn.net/nz360/article/details/52326232


主要记录自己使用PageHelper分页的过程

需要的jar包

  1. <dependency>  
  2.         <groupId>com.github.pagehelper</groupId>  
  3.         <artifactId>pagehelper</artifactId>  
  4.         <version>4.0.1</version>  
  5.     </dependency>  


插件的配置(SessionFactory bean属性)

  1. <property name="plugins">  
  2.     <array>  
  3.       <bean class="com.github.pagehelper.PageHelper">  
  4.         <property name="properties">  
  5.           <value>  
  6.             dialect=oracle  
  7.           </value>  
  8.         </property>  
  9.       </bean>  
  10.     </array>  
  11.   </property>  


通用的JSP

  1. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
  2. <%@ include file="taglibs.jsp"%>  
  3. <div id="table_id_wrapper" class="dataTables_wrapper form-inline no-footer">  
  4.   
  5.     <div class="dataTables_length" style="float: left;">  
  6.         <label> 共 ${page.total } 条记录 | 每页显示: <select id="pageSize" name="table_id_length" aria-controls="table_id" class="form-control input-sm">  
  7.                 <option value="10" ${page.pageSize eq 10?'selected':'' }>10</option>  
  8.                 <option value="25" ${page.pageSize eq 25?'selected':'' }>25</option>  
  9.                 <option value="50" ${page.pageSize eq 50?'selected':'' }>50</option>  
  10.                 <!-- <option value="-1" ${page.pageSize eq -1?'selected':'' }>All</option>  -->  
  11.         </select>  
  12.         </label>  
  13.     </div>  
  14.   
  15.     <c:if test="${page.pages gt 1}">  
  16.         <div class="dataTables_paginate paging_simple_numbers" id="table_id_paginate" style="float: right;">  
  17.             <ul class="pagination">  
  18.                 <li class="paginate_button previous ${page.pageNum eq 1?'disabled':'paginate_button_js' }" data-index="1"><a href="javascript:void(0)">最前</a></li>  
  19.                 <li class="paginate_button previous ${page.pageNum eq 1?'disabled':'' }" aria-controls="table_id" tabindex="0" id="table_id_previous"><a href="javascript:void(0)">上页</a></li>  
  20.                 <c:forEach items="${page.navigatepageNums }" var="index">  
  21.                     <li class="paginate_button ${page.pageNum eq index?'active':'paginate_button_js' }" aria-controls="table_id" data-index="${index}"><a href="javascript:void(0)">${index }</a></li>  
  22.                 </c:forEach>  
  23.                 <li class="paginate_button next ${page.pageNum eq page.pages?'disabled':'' }" aria-controls="table_id" tabindex="0" id="table_id_next"><a href="javascript:void(0)">下页</a></li>  
  24.                 <li class="paginate_button next ${page.pageNum eq page.pages?'disabled':'paginate_button_js' }" data-index="${page.pages }"><a href="javascript:void(0)">最后</a></li>  
  25.                 <li class="display_inlineblock paginate_text"> 跳转到第 <input id="page" type="text" class="form-control input-sm" size="2"> 页  
  26.                     <button id="page-forward" type="button" class="btn btn-primary btn-xs">确定š</button></li>  
  27.             </ul>  
  28.         </div>  
  29.     </c:if>  
  30. </div>  
  31. <script type="text/javascript">  
  32. $(document).ready(function() {  
  33.       
  34.   
  35.     var totalPage = Number('${page.pages}');  
  36.     var $queryForm = $('#queryForm');  
  37.           
  38.     $queryForm.submit(function(){  
  39.         //$queryForm.find('input[name=page]').val($('#page').val());  
  40.         $queryForm.find('input[name=pageSize]').val($('#pageSize').val());  
  41.     });  
  42.       
  43.     $('#btnSubmit').on('click',function(){  
  44.         $queryForm.find('input[name=pageNum]').val(1);  
  45.         $queryForm.submit();  
  46.     });  
  47.       
  48.     $('#table_id_previous').on('click',function(){  
  49.         var page = Number($queryForm.find('input[name=pageNum]').val());  
  50.         if(page!=1){  
  51.             $queryForm.find('input[name=pageNum]').val(--page);  
  52.             $queryForm.submit();  
  53.         }  
  54.     });  
  55.       
  56.     $('#table_id_next').on('click',function(){  
  57.         var page = Number($queryForm.find('input[name=pageNum]').val());  
  58.         if((page+1) <= totalPage){  
  59.             $queryForm.find('input[name=pageNum]').val(++page);  
  60.             $queryForm.submit();  
  61.         }  
  62.     });  
  63.       
  64.     $('#page-forward').on('click',function(){  
  65.         var regPage = /^[1-9]*$/;  
  66.         var page = $('#page').val();  
  67.         if(!regPage.test(page)||page==""){  
  68.             return;  
  69.             }  
  70.         $queryForm.find('input[name=pageNum]').val($('#page').val());  
  71.         $queryForm.submit();  
  72.     });  
  73.       
  74.     $('li.paginate_button_js').on('click',function(){  
  75.         var page = Number($(this).data('index'));  
  76.         $queryForm.find('input[name=pageNum]').val(page);  
  77.         $queryForm.submit();  
  78.     });  
  79.   
  80.     $('#pageSize').on('change',function(){  
  81.         $queryForm.find('input[name=pageNum]').val(1);  
  82.         $queryForm.submit();  
  83.     });  
  84. })  
  85. </script>  
  86. <div class="clearfix"></div>  

使用时需要注意的地方

controller

  1. public String selectTransLogList(TransLog transLog,HttpServletRequest request,HttpSession session,PageInfo<TransLog> page, Model model){  
  2.     Logger.info("/selectOrderInfoList");  
  3.     if (page.getPageSize() == 0) {  
  4.         page.setPageSize(10);  
  5.         page.setPageNum(1);  
  6.     }  

service
  1. @Override  
  2. public List<TransLog> selectTransLogList(TransLog record, PageInfo<TransLog> page) {  
  3.     if(page!=null){  
  4.         PageHelper.startPage(page.getPageNum(), page.getPageSize());  
  5.     }  


JSP

默认form的id为queryForm,查询按钮id为btnSubmit

有其他需要可以重新设置分页参数

  1. var $queryForm = $('#queryForm');  
  2. $queryForm.find('input[name=pageNum]').val(1);  
  3. $queryForm.find('input[name=pageSize]').val($('#pageSize').val());  
  4. $queryForm.submit(); 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PageHelper分页插件使用 的相关文章

随机推荐

  • Pytorch实现手写数字识别【基于卷积神经网络】

    说明 本案例在上一次案例的基础之上对神经网络模型进行了修改 在全连接层之前加入了特征提取层 卷积层 池化层 其他基本保持一致 卷积神经网络模型设计如下 1 导入各类需要的包 import torch import numpy as np 导
  • 3次 int 关系运算 比较两个非负 float 变量的大小

    include
  • 数据库应用:MySQL主从复制与读写分离

    目录 一 理论 1 读写分离 2 MySQL主从复制延迟原因和优化方法 3 MySQL主从复制的几个同步模式 4 MySQL读写分离 5 主从复制 异步复制 6 主从复制 半同步复制 7 读写分离 使用Amoeba 二 实验 1 主从复制
  • 帧是什么?

    数据在网络上是以很小的称为帧 Frame 的单位传输的 帧由几部分组成 不同的部分执行不同的功能 数据在网络上是以很小的称为帧 Frame 的单位传输的 帧由几部分组成 不同的部分执行不同的功能 帧通过特定的称为网络驱动程序的软件进行成型
  • 微信公众号消息与事件处理机制

    一 授权事件接收URL 1 微信服务器每隔10分钟定时推送component verify ticket 第三方平台方在收到ticket推送后也需进行解密 ComponentVerifyTicket ticket fxUU8P4 ip5B
  • sql语句group by以及count()的一些思考

    admin表 student表 第一条sql语句 SELECT admin id student name FROM admin student 结果 直接把admin id与student name匹配的所有记录 即0 1 2 3 4 5
  • 华为OD机试-MVP争夺战

    题目描述 在星球争霸篮球赛对抗赛中 强大的宇宙战队 希望每个人都能拿到MVP MVP的条件是 单场最高分得分获得者 可以并列 所以宇宙战队决定在比赛中 尽可能让更多的队员上场 且让所有有得分的队员得分都相同 然而比赛过程中的每一分钟的得分都
  • SpringCloud-消息总线

    消息总线 Spring Cloud Bus 概述 一言以蔽之 分布式自动刷新配置功能 Spring Cloud Bus配合Spring Cloud Config使用可以实现配置的动态刷新 是什么 Spring Cloud Bus 配合Spr
  • 关于 volatile——可见性,有序性,内存屏障

    并发编程的三大特性 原子性 有序性 可见性 从这三个方面去看一下 volatile volatile 保证了可见性 public class Demo1 private boolean flag true public void test
  • ​LeetCode刷题实战540:有序数组中的单一元素

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 有序数组中的单一元素 我们先来
  • 模拟实现库函数strlen(详解)

    模拟实现库函数strlen 的意思是 不用strlen函数 但要求出字符串长度 1 先打印主函数 记字符串长度为len 并引入自己定义的strilen函数 含arr int main char str abcdef int len strl
  • 【python图像处理】python的图像处理模块Image【原创】

    版本信息 2 7 11 环境 windows 7 64位系统 编辑器 PyCharm 运行工具 PyCharm 文件地址 D phpStudy WWW python Image 一 引入图像模块 1 PIL简介 PIL Python Ima
  • 经典场效应管如何快速关断技巧-KIA MOS管

    mos管的快速关断原理 R4是Q1的导通电阻没有Q1就没有安装的必要了 当低电位来时Q1为泻放扩流管 功率MOS管怎样关断 能否用PWM实现 怎样实现 功率mosfet的三个端口 G极 D极 S极 G极控制mosfet的开通 关断 给GS极
  • Linux查看文件命令

    文章目录 Linux查看文件命令 1 使用vim命令 查看并编辑文件 2 使用cat命令 一次性显示文件的所有内容 3 使用head 命令 显示文件开头 默认10行 4 使用tail 命令 显示文件结尾 默认10行 vi vim工具共分为三
  • MongoDB shell操作

    MongoDB shell操作 实验目的 1 了解MongoDB的shell操作语法 2 掌握MongoDB中对数据增删改查的命令 实验原理 MongoDB shell是一个可执行文件 是MongoDB自带的一个交互式JavaScript
  • 仅需一个参数,开启微信小程序长按图片转发朋友,发送给朋友功能。小程序转发图片给朋友功能。

    原来 只需要在 image 属性加入 show menu by longpress 1 就可以实现了 太方便了吧 你是不是在这里找到答案了 给个赞呗
  • 信息收集——根据图中信息找到图中的餐厅

    这是一道网络迷踪类型的题目 先观察图片 图中比较明显的特征便是薯条和汉堡下面的小票和海报 或者类似于海报的东西 小票明显是英文的 所以初步判定该餐厅不是大陆的 去百度上搜索国外麦当劳餐厅小票 由以上三张图片可知 英文小票上对于麦当劳餐厅的描
  • 27道多线程核心面试题(附答案),你真的准备好面试了吗?

    今天给大家分享的是比较全面的多线程面试题 大家在面试的过程中不免会被问到很多专业性的问题 有的时候回答的并不是那么全面和精细 这仅仅代表个人观点 1 如何预防死锁 1 首先需要将死锁发生的是个必要条件讲出来 互斥条件 同一时间只能有一个线程
  • 常成员函数和常对象

    const回顾 const int a 10 a不能被改变 int const p 指针的指向可变 指向里的值不可变 int const p 指针的指向不可变 指向里的值可变 int const const p 都不可变 const int
  • PageHelper分页插件使用

    http blog csdn net nz360 article details 52326232 主要记录自己使用PageHelper分页的过程 需要的jar包 java view plain copy