//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. 创建oracle本地数据库步骤详解

    前提:安装好oracle数据库客户端: PL/SQL DEVELOPER 1.打开DatabaseConfiguration Assistant,如图: 选择创建数据库->next->选择 ...

  2. Java Stream 官方文档翻译

    先立个flag https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html

  3. RabbitMQ(一):Windows下RabbitMQ安装

    1.Windows下安装RabbitMQ需要以下几个步骤 (1):下载erlang,原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的,下载地址:http://www.erlang. ...

  4. WebMethod Session

    [WebMethod(EnableSession = true)] public static string SayHello() { LxUserContext depno = HttpContex ...

  5. 第二百零一节,jQuery EasyUI,Accordion(分类)组件

    jQuery EasyUI,Accordion(分类)组件 学习要点: 1.加载方式 2.容器属性 3.事件列表 4.方法列表 5.面板属性 本节课重点了解 EasyUI 中 Accordion(选项 ...

  6. 添加可点击的imagebottom,有个点击动画效果

    android添加可点击的按钮,有个动画切换 ,首先定义一个 res/drawable中定义一个 btn_shutter_background.xml,其定义举例如下: <?xml versio ...

  7. try finally 执行顺序

    class Exc{ int a; int b; } public class Except { @SuppressWarnings("finally") static int c ...

  8. 在PC端或移动端应用中接入商业QQ

    前两天在做一个项目XXX的时候,遇见一个问题,在页面中需要接入企业的QQ,在查找腾讯API后无果,则请求人工服务,然后人家给一网址(就是API接口),然后你只需要登录你的QQ,然后选择相应的显示类型, ...

  9. Javascript中的函数中的this值

    看下面这段代码会在控制台上输出什么内容? <script> var url="fang.com"; var obj={ url:"soufun.com&quo ...

  10. 如何自己实现一套EasyNVR这样的无插件流媒体服务器

    EasyNVR流媒体解决方案 EasyNVR能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera.NVR等具有RTSP协议输出的设备接入到EasyNVR,EasyNV ...