//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. springMVC对简单对象、Set、List、Map的数据绑定和常见问题.

    算了,就不粘贴了,到原文去查看吧! springMVC对简单对象.Set.List.Map的数据绑定和常见问题.

  2. Matlab命令行版打开

    matlab -nosplash -nodesktop 运行文件:matlab  -nodesktop -nosplash -r file

  3. 求伪逆矩阵c++代码(Eigen库)

    非方阵的矩阵的逆矩阵  pseudoInverse 伪逆矩阵是逆矩阵的广义形式,广义逆矩阵 matlab中是pinv(A)-->inv(A). #include "stdafx.h&q ...

  4. PYTHON --WebAPP项目转载(廖雪峰) -- Day 1 -- 搭建开发环境

    Day 1 - 搭建开发环境   搭建开发环境 首先,确认系统安装的Python版本是3.5.x: $ python3 --version Python 3.5.1 然后,用pip安装开发Web Ap ...

  5. java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation 解决办法

    MyEclipse 启动tomcat 报错: java.lang.IllegalArgumentException: Invalid 'log4jConfigLocation' parameter: ...

  6. 输入一个十进制数N,将它转换成R进制数输出(运用递归实现)

    #include<stdio.h> int cnt=0;                             //用来记录每个进制存放的位置 char num[20];   //用来存 ...

  7. redis 有序集合数据结构实现 skiplist

    Redis使用跳跃表作为有序集合键的的底层实现,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时Redis就会使用跳跃表 来作为有序集合键的底层实现 Redis只在两 ...

  8. ProgressBar 进度条设置百分比显示

    rawable/progressbar <layer-list xmlns:android="http://schemas.android.com/apk/res/android&qu ...

  9. Python抓取网页并保存为PDF

    https://blog.csdn.net/shenwanjiang111/article/details/67634794

  10. poj2528

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 56864   Accepted: 16445 ...