第一步:分页工具类
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 { @Autowired
MemberCheckService 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" onclick="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();
});

  

mybatis PageBounds应用分页的更多相关文章

  1. Mybatis Generator实现分页功能

    Mybatis Generator实现分页功能 分类: IBATIS2013-07-17 17:03 882人阅读 评论(1) 收藏 举报 mybatisibatisgeneratorpage分页 众 ...

  2. SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页

    SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...

  3. SpringBoot+Mybatis+PageHelper实现分页

    SpringBoot+Mybatis+PageHelper实现分页 mybatis自己没有分页功能,我们可以通过PageHelper工具来实现分页,非常简单方便 第一步:添加依赖 <depend ...

  4. SpringBoot集成Mybatis并具有分页功能PageHelper

    SpringBoot集成Mybatis并具有分页功能PageHelper   环境:IDEA编译工具   第一步:生成测试的数据库表和数据   SET FOREIGN_KEY_CHECKS=0;   ...

  5. Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板

    作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...

  6. 小白的springboot之路(十五)、mybatis的PageHelper分页插件使用

    0.前言 用mybatis,那么分页必不可少,基本都是用PageHelper这个分页插件,好用方便: 1.实现 1.1.添加依赖: <!-- 3.集成 mybatis pagehelper--& ...

  7. Mybatis: 插件及分页

    Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的). Mybatis支持对Executor.StatementHa ...

  8. 如何用Mybatis逆向工程实现分页查询(更改生成的Example)

    如何用Mybatis逆向工程实现分页查询  一个很简单的方法,如果要mysql实现分页查询的话,执行下述语句即可 select * from table limit (offset)5,(limit) ...

  9. mybatis是如何分页的,分页插件的原理是什么

    mybatis是如何分页的,分页插件的原理是什么 代码之尖关注 12018.12.28 17:11:12字数 529阅读 19,877 1. SQL 分页 <select id="qu ...

随机推荐

  1. 安装php时,configure: error: xml2-config not found. Please check your libxml2 installation

    参考文章:http://blog.csdn.net/anljf/article/details/6981247 安装php时的报错configure: error: xml2-config not f ...

  2. MySQL分表备份

    #!/bin/bash DUMP=/usr/bin/mysqldump MYSQL=/usr/bin/mysql IPADDR=127.0.0.1 PORT=3306 USER=abc PASSWD= ...

  3. Liunx平台安装MySQL操作步骤

    使用yum安装MySQL 第一步 第二步 第三步 数据库安装成功 修改数据库密码,并且删除匿名用户.禁止root远程登录.删除test数据库.刷新权限. 使用命令进入后,找到自己的临时密码,并且修改 ...

  4. neo4j使用cypher查询路径避免出现环路

    neo4j在使用可变长路径找两个点之前的所有路径时,会返回包含环路的路径(一个点在路径中出现两次),如下面的语句: MATCH path = (x)-[:KNOWS*]-(y) 可能返回a->b ...

  5. css 图片有间隔多个Img标签之间的间隙

    今天写css时发现,图片加起来刚好是900px的三张图片,不能在一个900px宽容器放下,因为图片之间有间隔,我猜是浏览器把两个img标签之间的空格当成了空白节点. 在网上找到了几个不错的解决方法: ...

  6. LeetCode Linked List Easy 83. Remove Duplicates from Sorted List

    Description Given a sorted linked list, delete all duplicates such that each element appear only onc ...

  7. java NIO 详解

    Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API.本系列教程将有助于你学习和理解Java NIO. Java NIO提供了与 ...

  8. numpy 中的broadcast 机制

    https://www.cnblogs.com/jiaxin359/p/9021726.html

  9. 解决mac pro 软件损坏

    1,打开终端 2,输入 sudo spctl --master-disable 3,打开系统偏好设置——>安全与隐私——>勾选任何来源

  10. Linux下的上传和下载yum install -y lrzsz

    先使用命令 yum install -y lrzsz rz 上传    或者直接拖动 sz 要下的文件 回车