//13年写的,今天(17)拷贝到博客园

package com.sicdt.sicsign.web.utils;

import java.io.Serializable;
import java.util.List; /**
* @author shizhenwei
*
* @param <T>用于向前台返还List所用
*/
public class PageInfo<T> implements Serializable {
private static final long serialVersionUID = 1L;
//每页显示的记录数
private Integer pageSize;
//当前页码数
private Integer pageNum;
//总记录数
private Integer rowCount;
//总页码数
private Integer pageCount;
//查询的时候从多少记录开始
private Integer rowStart;
//每页显示多少页码
private Integer everyPageTabsCount;
//每页显示的开始页码数
private Integer everyPageStart;
//每页显示的结束页码数
private Integer everyPageEnd;
//是否有上一页
private boolean hasPrevious = false;
//首页
private Integer firstPageNum;
//上一页
private Integer priviousPageNum;
//是否有下一页
private boolean hasNext = false;
//下一页
private Integer nextPageNum;
//尾页
private Integer endPageNum;
//存放本次分页查询出来的数据
private List<T> list; /**
* 通过构造器计算出其他属性的值
* @param pageSize
* @param pageNum
* @param rowCount
*/
public PageInfo(Integer pageNum,Integer pageSize,Integer rowCount,Integer everyPageTabsCount) {
//每页显示的记录数
this.pageSize = pageSize == null ? 10 : pageSize;
//当前页码数
this.pageNum = pageNum == null ? 1 : pageNum;
//总记录数
this.rowCount = rowCount == null ? 0 : rowCount;
//每页显示多少页码 默认10,可以set
this.everyPageTabsCount = everyPageTabsCount == null ? 10 : everyPageTabsCount;
//总页码数
this.pageCount = (int) Math.ceil(this.rowCount * 1.0 / this.pageSize);
//判断当前页码数是否大于总页码数
if (this.pageNum > this.pageCount && this.pageCount >= 1) {
this.pageNum = this.pageCount;
}
//查询的时候从多少记录开始
this.rowStart = (this.pageNum - 1) * this.pageSize;
//每页显示的开始页码数
this.everyPageStart = (this.pageNum - this.everyPageTabsCount / 2) > 0 ? (this.pageNum - this.everyPageTabsCount / 2) : 1; /***** 无论从第几页开始都会以固定的页数进行显示,当总页数小于固定页数,将全部显示总页数****/
int cenNum = (int) Math.ceil((this.everyPageTabsCount / 2.0));
if(this.pageCount>=this.everyPageTabsCount && this.pageNum<=(this.everyPageTabsCount / 2)){
this.everyPageEnd = this.everyPageTabsCount;
}else if(this.pageCount<=this.everyPageTabsCount){
this.everyPageEnd = this.pageCount;
}else{
//每页显示的结束页码数
this.everyPageEnd = (this.pageNum + cenNum - 1) > this.pageCount ? this.pageCount : (this.pageNum + cenNum - 1);
}
if(this.pageCount>=this.everyPageTabsCount && this.pageNum>(this.pageCount-(cenNum - 1))){
this.everyPageStart=this.pageCount-(this.everyPageTabsCount-1);
} //是否有上一页
if (this.pageNum > 1) {
this.hasPrevious = true;
this.firstPageNum = 1;
this.priviousPageNum = this.pageNum - 1;
}
//是否有下一页
if (this.pageNum < this.pageCount) {
this.hasNext = true;
this.nextPageNum = this.pageNum + 1;
this.endPageNum = this.pageCount;
}
} public Integer getPageSize() {
return pageSize;
} public Integer getPageNum() {
return pageNum;
} public Integer getRowCount() {
return rowCount;
} public Integer getPageCount() {
return pageCount;
} public Integer getRowStart() {
return rowStart;
} public Integer getEveryPageStart() {
return everyPageStart;
} public Integer getEveryPageEnd() {
return everyPageEnd;
} public boolean isHasPrevious() {
return hasPrevious;
} public Integer getFirstPageNum() {
return firstPageNum;
} public Integer getPriviousPageNum() {
return priviousPageNum;
} public boolean isHasNext() {
return hasNext;
} public Integer getNextPageNum() {
return nextPageNum;
} public Integer getEndPageNum() {
return endPageNum;
} public List<T> getList() {
return list;
} public void setList(List<T> list) {
this.list = list;
} public Integer getEveryPageTabsCount() {
return everyPageTabsCount;
} public void setEveryPageTabsCount(Integer everyPageTabsCount) {
this.everyPageTabsCount = everyPageTabsCount;
}
}

java 分页工具类的更多相关文章

  1. JAVA分页工具类

    最近写了一个代码生成工具,分享下该工具下的分页工具 一.分页工具类 package com.qy.code.api.page; import java.io.Serializable; import ...

  2. PageUtil.java分页工具类

    package com.chabansheng.util; /** * 分页工具类 * @author Administrator * */ public class PageUtil { /** * ...

  3. JAVA 分页工具类及其使用

    Pager.java package pers.kangxu.datautils.common; import java.io.Serializable; import java.util.List; ...

  4. 分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解

    [博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]http ...

  5. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  6. 项目经验分享——Java常用工具类集合 转

    http://blog.csdn.net/xyw591238/article/details/51678525 写在前面     本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...

  7. Java常用工具类之数据库操作辅助类DBUtil.java

    package com.qushida.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.be ...

  8. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  9. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

随机推荐

  1. MVVMLight-Mensenger 学习笔记

    MVVMLight-Mensenger  最近一直在使用WPF,配合美工很容易能搭配出效果不错的UI来,开发效率也明显加快 自己也是最近才开始使用Mvvmlight,通过view和viewmodel分 ...

  2. Servlet 处理日期

    使用 Servlet 的最重要的优势之一是,可以使用核心 Java 中的大多数可用的方法.本章将讲解 Java 提供的 java.util 包中的 Date 类,这个类封装了当前的日期和时间. Dat ...

  3. Eclipse 浏览(Navigate)菜单

    浏览 Eclipse 工作空间 浏览(Navigate)菜单提供了多个菜单可以让你快速定位到指定资源. 上图中 Open Type, Open Type in Hierarchy 和 Open Res ...

  4. 音频处理之去噪算法---基于pcm和g711的音频16000hz、8bit去噪声算法

    (1)应用背景 (2)主要降噪算法原理 (3)算法流程 (4)算法实现 (5) ------------author:pkf -------------------time:2-6 --------- ...

  5. 多媒体开发之---h264格式详解

    http://blog.csdn.net/bluebirdssh/article/details/6533501 http://blog.csdn.net/d_l_u_f/article/detail ...

  6. 红外图像盲元补偿matlab实现源码与效果验证

    在国内红外公司绝大多数一直以来国外进口的成像芯片,能够进行红外芯片自助开发的电学应该只有大立光电和广微积电光学方法只有上海巨哥和一直未能产 品化的昆山光微电子.由于政治和历史原因,欧美对中国大陆还是实 ...

  7. poj 1548(最小路径覆盖)

    题目链接:http://poj.org/problem?id=1548 思路:最小路径覆盖是很容易想到的(本题就是求最小的路径条数覆盖所有的点),关键是如何建图,其实也不难想到,对于当前点,如果后面的 ...

  8. PDO drivers no value in Windows

    学习php编程遇到 Uncaught exception 'PDOException' with message 'could not find driver' 或者 Undefined class ...

  9. 一、docker临时记录

    docker 临时记录(阿里云centos7.2.1511 ) 查看系统版本号 适用于Redhat/CentOS: [root@iz2zecm4ndtkaue32tynx5z ~]# cat /etc ...

  10. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 1)

    本节中所阐述的内容,主要适用于SharePoint文档库中的文件和文件夹,以及列表中的文件夹.系统中的其他文件(如_layouts中的文件.配置文件.程序文件等)不在本章节的讨论范围之内.   (一) ...