//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. jquery特效 商品SKU属性规格选择实时联动

    转载,原文链接 功能:各种属性的值选中后,SKU填写表格进行变动,对属性.属性值的数量自适应,编辑时不因去掉勾选导致原有值不显示 所有代码均属原创,现在共享,如果有更好的实现方式,希望互相交流 最终实 ...

  2. (转)秒懂,Java 注解 (Annotation)你可以这样学

    转自:秒懂,Java 注解 (Annotation)你可以这样学 注解如同标签 回到博文开始的地方,之前某新闻客户端的评论有盖楼的习惯,于是 “乔布斯重新定义了手机.罗永浩重新定义了傻X” 就经常极为 ...

  3. 如何创建Windows定时任务

    我们经常使用电脑,有没有那么一个瞬间想着要是电脑可以每隔一段时间,自动处理一件事情就好了呢? 其实Windows还真有这样的功能,很多软件检测更新就是通过这个方法实现的. 这次我们来做一个简易的喝水提 ...

  4. Spring MVC资源绑定视图解析器

    ResourceBundleViewResolver使用属性文件中定义的视图bean来解析视图名称. 以下示例显示如何使用Spring Web MVC框架中的ResourceBundleViewRes ...

  5. python 面向对象类成员(字段 方法 属性)

    一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 class Province: # 静态字段 countr ...

  6. c语言 常用知识点

    强制类型转换 (int)(x+y) 输入 scanf("a=%f,b=%f",&a,&b);  a=1,b=1 char a; a=getchar(); 输入一个字 ...

  7. 【BZOJ3620】似乎在梦中见过的样子 KMP

    [BZOJ3620]似乎在梦中见过的样子 Description “Madoka,不要相信 QB!”伴随着 Homura 的失望地喊叫,Madoka 与 QB 签订了契约. 这是 Modoka 的一个 ...

  8. 【BZOJ3122】[Sdoi2013]随机数生成器 BSGS+exgcd+特判

    [BZOJ3122][Sdoi2013]随机数生成器 Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数.   接下来T行,每行有五个整数p,a,b, ...

  9. Olya and Energy Drinks(bfs)

    D. Olya and Energy Drinks time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  10. xenserver 模板导出导入

    由于业务需求,新增一台xenserver,需要将原先创建好的模板环境导入到新的母机上面,此处记录一下 1.导出模板 # 获取需要导出的模板uuid [root@localhost ~]# xe tem ...