第一步:分页工具类
package com.smartmorse.vo;import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.github.miemiedev.mybatis.paginator.domain.Order;
import com.github.miemiedev.mybatis.paginator.domain.PageBounds;public class PageForm {public static final String CHINESE_PINYIN = "nlssort(? ,'NLS_SORT=SCHINESE_PINYIN_M')";private int page = 1;private int limit = 20;private String sort;private Map<String,String> orderExprs = new HashMap<String, String>();public int getPage() {return page;}public void setPage(int page) {this.page = page;}public int getLimit() {return limit;}public void setLimit(int limit) {this.limit = limit;}public String getSort() {return sort;}public void setSort(String sort) {this.sort = sort;}public void addOrderExpr(String property, String expr){this.orderExprs.put(property,expr);}public PageBounds toPageBounds(){List<Order> orders = Order.formString(sort);for (int i = 0; i < orders.size(); i++) {Order order =  orders.get(i);if(orderExprs.get(order.getProperty()) != null){orders.set(i, new Order(order.getProperty(),order.getDirection(),orderExprs.get(order.getProperty())));}}return new PageBounds(page, limit, orders);}
}第二步 应用后端代码
@Controller
@RequestMapping("/membercheck")
public class MemberCheckController {@AutowiredMemberCheckService memberCheckService;@SystemControllerLog(description = "签到(退)列表")@RequestMapping(value = "/list", method = RequestMethod.GET)public String list(HttpServletRequest request, Model model, PageForm pageForm, MemberCheckVo memberCheck){String dcode = (String) request .getSession().getAttribute("dcode");memberCheck.setDistrictCode(dcode);StringBuffer searchstr = new StringBuffer();//传参解决分页异常if(StringUtil.isNotNull(memberCheck.getDistrictCode())){searchstr.append("&districtCode="+memberCheck.getDistrictCode());}if(StringUtil.isNotNull(memberCheck.getMemberName())){searchstr.append("&memberName="+memberCheck.getMemberName());}if(StringUtil.isNotNull(memberCheck.getCheckInStartDate())){searchstr.append("&checkInStartDate="+memberCheck.getCheckInStartDate());}if(StringUtil.isNotNull(memberCheck.getCheckInEndDate())){searchstr.append("&checkInEndDate="+memberCheck.getCheckInEndDate());}if(StringUtil.isNotNull(memberCheck.getCheckOutEndDate())){searchstr.append("&checkOutEndDate="+memberCheck.getCheckOutEndDate());}if(StringUtil.isNotNull(memberCheck.getCheckOutStartDate())){searchstr.append("&checkOutStartDate="+memberCheck.getCheckOutStartDate());}if(StringUtil.isNotNull(memberCheck.getStatus())){searchstr.append("&status="+memberCheck.getStatus());}model.addAttribute("searchstr", searchstr);model.addAttribute("memberCheck",memberCheck);model.addAttribute("list", memberCheckService.selectByPage(memberCheck,pageForm.toPageBounds()));return "membercheck/list";}
}第三步 前端应用
<%@page language="java" contentType="text/html; charset=UTF-8"%>
<%@ include file="/common/taglibs.jsp"%>
<!DOCTYPE html>
<html lang="en">
<head>
<script src="${assetsctx }/js/page/jqPaginator.min.js"type="text/javascript"></script>
<link href="${assetsctx }/css/page/myPage.css" rel="stylesheet"type="text/css" /><script type="text/javascript" src="${assetsctx }js/layer/layer.js"></script><script type="text/javascript" src="${assetsctx }js/My97DatePicker/WdatePicker.js"></script>
</head>
<body><div class="row"><div class="col-sm-12"><div class="panel panel-default"><!-- /.panel-heading --><div class="panel-heading"><div class="col-sm-12"><h1 class="page-header">签到(退)列表</h1></div></div><div class="panel-body"><div class="text-left"><form id="selectForm" class="form-inline" role="form" action="" method="get"><div class="row col-sm-10"><div class="row col-sm-12"><div class="form-group" ><div class="form-group"><div class="input-group"><div class="input-group-addon">签到时间</div><input class="form-control" name="checkInStartDate" type="text"placeholder="开始时间" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"readonly="readonly"value="${memberCheck.checkInStartDate }"><div class="input-group-addon">至</div><input class="form-control" name="checkInEndDate" type="text"placeholder="结束时间" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"readonly="readonly"value="${memberCheck.checkInEndDate }"></div></div><div class="form-group"><div class="input-group"><div class="input-group-addon">签退时间</div><input class="form-control" name="checkOutStartDate" type="text"placeholder="开始时间" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"readonly="readonly"value="${memberCheck.checkOutStartDate }"><div class="input-group-addon">至</div><input class="form-control" name="checkOutEndDate" type="text"placeholder="结束时间" onClick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})"readonly="readonly"value="${memberCheck.checkOutEndDate }"></div></div><div class="form-group"><div class="input-group"><div class="input-group-addon" style="width:60px;">操作员姓名</div><input class="form-control" name="memberName" type="text"placeholder=""value="${memberCheck.memberName }"></div></div><div class="form-group"><div class="input-group"><div class="input-group-addon" style="width:60px;">状态</div><select name="status" class="form-control"><option value="">全部</option><option value="WQD" <c:if test="${memberCheck.status=='WQD' }">selected</c:if> >未签到</option><option value="YQD" <c:if test="${memberCheck.status=='YQD' }">selected</c:if> >已签到</option><option value="YQT" <c:if test="${memberCheck.status=='YQT' }">selected</c:if> >已签退</option></select></div></div><div class="form-group"><button type="submit" class="btn btn-primary">筛选</button><button class="btn btn-danger" type="button" οnclick="emptyForm();">重置</button></div></div></div></div></form></div><div class="row col-sm-12"><div class="table-responsive"><table class="table table-striped table-bordered table-hover"id="dataTables-example"><thead><tr><th>会员名称</th><th>pos编号</th><th>打卡日期</th><th>签到时间</th><th>签退时间</th><th>状态</th></tr></thead><tbody><c:forEach var="item" items="${list}"><tr class="id" value="${item.id }"><td>${item.memberName }</td><td>${item.posNo }</td><td><fmt:formatDate value="${item.checkDate }" type="time" pattern="yyyy-MM-dd"/></td><td><fmt:formatDate value="${item.checkIn }" type="time" pattern="yyyy-MM-dd HH:mm:ss"/></td><td><fmt:formatDate value="${item.checkOut }" type="time" pattern="yyyy-MM-dd HH:mm:ss"/></td><td><c:if test="${item.status == 'WQD'}">未签到</c:if><c:if test="${item.status == 'YQD'}">已签到</c:if><c:if test="${item.status == 'YQT'}">已签退</c:if></td></tr></c:forEach></tbody></table><div class="col-sm-12 text-center"><ul class="pagination" id="pagination"></ul><!-- 总条数 --><input type="hidden" id="PageCount" runat="server"value="${listPaginator.totalCount}" /><!-- 总页数 --><input type="hidden" id="countindex" runat="server"value="${listPaginator.totalPages}" /><!-- 当前第几页 --><input type="hidden" id="Pagedq" runat="server"value="${listPaginator.page}" /><!-- 请求的地址 --><input type="hidden" id="pageUrl" runat="server"value="${ctx }/membercheck/list" /><!-- 请求的参数 --><input type="hidden" id="pageParameter" runat="server"value="${searchstr}" />//解决异常<!--设置最多显示的页码数 可以手动设置 默认为7--><input type="hidden" id="visiblePages" runat="server" value="10" /></div><script src="${assetsctx }/js/page/myPage.js"type="text/javascript"></script></div></div></div></div></div></div><script src="${assetsctx}themes/classic/base/js/app.js"></script><script type="text/javascript">//清空表单function emptyForm(){$('input','#selectForm').not(':button, :submit, :reset, :hidden').val('');$('option','#selectForm').removeAttr('selected');}</script>
</body>
</html>js文件
function exeData(num, type) {loadpage();
}
function loadpage() {var myPageCount = parseInt($("#PageCount").val());var countindex = parseInt($("#countindex").val());var pageUrl=$("#pageUrl").val()+"?page=";var pageParameter=$("#pageParameter").val();var Pagedq=$("#Pagedq").val();$.jqPaginator('#pagination', {totalPages: parseInt($("#countindex").val()),visiblePages: parseInt($("#visiblePages").val()),currentPage: parseInt($("#Pagedq").val()),first: '<li class="first"><a href="javascript:;">首页</a></li>',prev: '<li class="prev"><a href="javascript:;"><i class="arrow arrow2"></i>上一页</a></li>',next: '<li class="next"><a href="javascript:;">下一页<i class="arrow arrow3"></i></a></li>',last: '<li class="last"><a href="javascript:;">末页</a></li>',page: '<li class="page"><a href="'+pageUrl+'{{page}}'+pageParameter+'">{{page}}</a></li>',onPageChange: function (num, type) {if (type == "change") {exeData(num, type);location.href=pageUrl+num+pageParameter;}}});$("#pagination").append("<li><span>共"+myPageCount+"条/共"+countindex+"页</span></li>");
}
$(function () {loadpage();
});

  

转载于:https://www.cnblogs.com/qinyios/p/11124870.html

mybatis PageBounds应用分页相关推荐

  1. Mybatis自定义轻量级分页组件(易集成,易拓展)

    Mybatis自定义轻量级分页组件(易集成,易拓展) 其实github有一个叫做PageHelper的开源分页组件,我也用过,封装的还可以.只是感觉他的量级偏重,其实很多参数,都是我们开发中不需要的参 ...

  2. Mybatis最入门---分页查询(逻辑分页与SQL语句分页)

    [一步是咫尺,一步即天涯] 到目前为止,我们介绍的Mybatis种种查询都是一次性的查询出所有结果并返回给上层.但是,在实际开发过程中,在大量数据存在的情况下,是很少这么做的.本文,我们将从逻辑分页, ...

  3. Mybatis如何实现分页

    Mybatis如何实现分页 关键字limit实现分页 Interceptor Plugin实现分页 首先定一个拦截器,拦截器会拦截所有以ByPage结尾的方法,然后拼接sql 语句的limit关键字实 ...

  4. 【Mybatis】mybatis如何实现分页

    [Mybatis]mybatis如何实现分页 mysql分页功能原理 实现分页必要条件 必须知道某一页从哪里开始到哪里结束 必须知道页面的大小,也就是指定每页要显示多少条数据量 mysql分页的过程 ...

  5. Mybatis使用之分页

    Mybatis使用之分页 一:简介 注:示例基于mysql数据库.Oracle可以自行测试.   使用Mybatis分页主要有两种方式.一种是将分页参数传递到配置文件中.在写sql的时候就做分页.另一 ...

  6. Mybatis如何进行分页的

    Mybatis如何进行分页的 Mybatis是Java应用开发的基础框架,而分页是我们时时都在使用的功能,一般我们可以把分页分为两种: 逻辑分页.先查询出所有的数据缓存到内存里,再根据业务相关的一些需 ...

  7. 前端Vue+ElementUI的Pagination分页组件实现分页展示 后端Spring Boot +Mybatis Plus实现分页接口

    前端Vue+ElementUI的Pagination分页组件实现分页展示 & 后端Spring Boot +Mybatis Plus实现分页接口 很久没有更新博客了,主要原因是博主一直在补充自 ...

  8. 一步步教你mybatis分页,mybatis分页拦截器 使用,mybatis拦截器分页

              mybatis 分页详解.mybatis分页查询,mybatis分页拦截器使用.struts2下mybatis分页 mybatis默认是支持分页的,内部通过创建可滚动的Result ...

  9. MyBatis插件使用--分页插件与性能拦截器

    对于PageHelper网上的资料很多,作者的文档写的很全面,我这里只是记录自己的配置和使用的方法 所需jar包:jsqlparser-0.9.5.jar和pagehelper-5.0.0.jar X ...

  10. Mybatis3.3.x技术内幕(十三):Mybatis之RowBounds分页原理

    2019独角兽企业重金招聘Python工程师标准>>> Mybatis可以通过传递RowBounds对象,来进行数据库数据的分页操作,然而遗憾的是,该分页操作是对ResultSet结 ...

最新文章

  1. FinFET与2nm晶圆工艺壁垒
  2. 教你用ERD轻松修改系统登录密码
  3. tensorlfow.saved_model的使用
  4. 【转】POJ-2104(K-th Number 划分树)
  5. 关键字—修饰方法、类、属性和变量的关键字(共9个)
  6. docker之docker-machine用法
  7. Java充电宝模型设计_继续探讨点赞功能模块设计
  8. 前端学习-flex布局
  9. python剑指offer数组中出现次数超过一半的数字
  10. 【转载】SQL Server XML Path
  11. 卡巴斯基7.0简体中文下载【有2010年的授权文件】
  12. linux 系统服务里没有系统服务,windows怎样添加系统服务|windows 添加不了系统服务怎么办|windows 添加系统服务方法-系统城...
  13. 调研分析-全球与中国工业电源插头和插座市场现状及未来发展趋势
  14. DM13: COSCon19私人回顾
  15. 一文详解超纤皮和真皮的区别,别再傻傻分不清了
  16. java中如何将一个对象,空值转换成空字符串
  17. 基于FPGA的DDS混频及原理
  18. 框架里面的标签采集不到怎么办_怎么做微信生态的全数据采集和打通?
  19. 使用群晖作mineportalbox(1):合理且不折腾地使用群晖硬件和套件
  20. 使用Python将多个单独的Excel文件整合到一个Excel文件的不同工作表里

热门文章

  1. 朱福喜 java_与朱福喜的教科同步JAVA实验指导书
  2. bootstart讲义,不过忘了是哪个老师的了
  3. GSON简单实用及常用方法(附 .jar 地址)
  4. PHPSTORM 6.0.3 Xdebug 配置9
  5. AC010笔记之三:总结
  6. 【Python】使用torrentParser1.02对单文件torrent的分析结果
  7. vs 2012/2013 等工具中,使用正则表达式,查找、替换
  8. 洛谷 P1560 [USACO5.2]蜗牛的旅行Snail Trails(不明原因的scanf错误)
  9. apiCloud中aui获取不到高度,pos.h为0,offsetHeight为0问题
  10. C语音--static变量