java 分页工具类
//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 分页工具类的更多相关文章
- JAVA分页工具类
最近写了一个代码生成工具,分享下该工具下的分页工具 一.分页工具类 package com.qy.code.api.page; import java.io.Serializable; import ...
- PageUtil.java分页工具类
package com.chabansheng.util; /** * 分页工具类 * @author Administrator * */ public class PageUtil { /** * ...
- JAVA 分页工具类及其使用
Pager.java package pers.kangxu.datautils.common; import java.io.Serializable; import java.util.List; ...
- 分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]http ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- 项目经验分享——Java常用工具类集合 转
http://blog.csdn.net/xyw591238/article/details/51678525 写在前面 本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...
- Java常用工具类之数据库操作辅助类DBUtil.java
package com.qushida.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.be ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- Java json工具类,jackson工具类,ObjectMapper工具类
Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...
随机推荐
- 一步一步解析H.264码流的NALU(SPS,PSS,IDR)获取宽高和帧率
分析H.264码流的工具 CodecVisa,StreamEye以及VM Analyzer NALU是由NALU头和RBSP数据组成,而RBSP可能是SPS,PPS,Slice或SEI 而且SPS位于 ...
- with root cause 解决办法
现象:1.工程在启动的时候无异常,当页面加载到包含spring:message标签的页面时,在后台报空指针异常,同时控制 台会显示with root cause提示: 2. ...
- PostgreSQL tips
tip 1 在sql中我们可以设置一个列自增长identity(1,1),但在postgresql中却没有这个关键字定义.但postgresql也有实现相关功能,那就是只需要将该列数据类型标记为ser ...
- C++ RTTI的应用
先看下方的代码,我们所处的context在<<< void* pX = (void*)pGiven; >>>处,只知道上面这些类的信息和pX指针,怎么判断pX指向对 ...
- 利用.Net中Process类调用netstat命令来判断计算端口的使用情况
利用.Net中Process类调用netstat命令来判断计算端口的使用情况: Process p = new Process();p.StartInfo = new ProcessStartInfo ...
- HTML学习笔记——常用元素及其属性(一)
1.img 标签 -- 代表HTML图像 img标签是单独出现的,<img /> 语法: <img src="URI" alt="alttext&quo ...
- B - Catch That Cow (抓牛)
B - Catch That Cow Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u ...
- SharePoint服务器端对象模型 之 对象模型概述(Part 1)
在一个传统的ASP.NET开发过程中,我们往往会把开发分为界面展现层.逻辑业务层和数据访问层这三个层面.作为一个应用开发平台,SharePoint是微软在直观的开发能力和自由的扩展能力之间,取到的一个 ...
- C语言8.3冒泡排序
8.3.1 例8-5 题目:输入n个正整数,将他们从小到大排序后输出,要求使用冒泡排序法. 而在自己抄写代码的时候,出现了以下问题: # include<stdio.h> void bub ...
- 调用第三方物流公司API即时查询物流信息
主要是利用快递鸟提供的物流服务,通过对接快递鸟的API,调用即时查询接口,获取物流信息. 这里采用java语言,调用快递鸟的接口为例.步骤如下: 1.首先,得去快递鸟的官方网站注册一个账号并进行实名认 ...