public class CalculationPage { 

    private Boolean showStartPagerDot;
private Boolean showEndPagerDot;
private int pageIndex;
private int pageSise;
private int totalPages;
private int dataTotal;
private List<Long> pageNumbers;
private int prevPage;
private int nextPage; public CalculationPage(int pageIndex, int pageSise, int dataTotal) { this.pageIndex = pageIndex;
this.pageSise = pageSise;
this.dataTotal = dataTotal; double dDataTotal = (double) this.dataTotal;
double dPageSize = (double) this.pageSise; this.totalPages = (int) Math.ceil((dDataTotal / dPageSize));
this.pageNumbers = new ArrayList<>();
int start = 1;
int pagerCount = 8;
int end = pagerCount;
if (this.pageIndex >= pagerCount) {
start = this.pageIndex - pagerCount / 2;
this.showStartPagerDot = false;
} else { prevPage = this.pageIndex - 1;
if (prevPage <= 0) {
this.showStartPagerDot = false;
} else {
this.showStartPagerDot = true;
}
}
end = start + pagerCount - 1;
if (end > this.totalPages) {
end = this.totalPages;
if (pageIndex == end) {
this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
this.nextPage = pageIndex + 1;
} } else {
this.nextPage = end + 1;
if (this.nextPage >= this.totalPages) { this.showEndPagerDot = false;
} else {
this.showEndPagerDot = true;
} }
for (int i = start; i <= end; i++) {
this.pageNumbers.add((long) i);
}
; } public Boolean getShowStartPagerDot() {
return showStartPagerDot;
} public void setShowStartPagerDot(Boolean showStartPagerDot) {
this.showStartPagerDot = showStartPagerDot;
} public Boolean getShowEndPagerDot() {
return showEndPagerDot;
} public void setShowEndPagerDot(Boolean showEndPagerDot) {
this.showEndPagerDot = showEndPagerDot;
} public int getPageIndex() {
return pageIndex;
} public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
} public int getPageSise() {
return pageSise;
} public void setPageSise(int pageSise) {
this.pageSise = pageSise;
} public int getTotalPages() {
return totalPages;
} public void setTotalPages(int totalPages) {
this.totalPages = totalPages;
} public int getDataTotal() {
return dataTotal;
} public void setDataTotal(int dataTotal) {
this.dataTotal = dataTotal;
} public void setPageNumbers(List<Long> pageNumbers) {
this.pageNumbers = pageNumbers;
} public List<Long> getPageNumbers() {
return pageNumbers;
} public int getPrevPage() {
return prevPage;
} public void setPrevPage(int prevPage) {
this.prevPage = prevPage;
} public int getNextPage() {
return nextPage;
} public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
}

java分页算法,传入当前pageIndex,pageSise,dataTotal可计算出页面上显示的页码,和是否启动上一页下一页的更多相关文章

  1. 一个方便的java分页算法

    一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * ...

  2. java分页的实现(后台工具类和前台jsp页面)

    1.首先,新建一个类Page.java public class Page implements Serializable { private static final long serialVers ...

  3. GridView利用PagerTemplate做分页显示设置上一页下一页转到下拉转页

    效果如图: 代码如下: aspx页: <asp:GridView ID="GridViewMain" runat="server" OnPageIndex ...

  4. java分页算法

    int totalPageNum = (totalRecord  +  pageSize  - 1) / pageSize;

  5. css -- 映像 ,分页(上一页下一页)

    1.映像:-webkit-box-reflect:blow 2px -webkit-gradient( linear, left top, left bottom, from(transparent) ...

  6. php实现分页,上一页下一页

    首先学东西  要多看手册用php自带的函数  可以解决一些难解的问题 <?php /**  * Created by JetBrains PhpStorm.  * User: Administr ...

  7. 【转】SQL Server海量数据库的索引、查询优化及分页算法

    探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo]. ...

  8. django之分页算法实现(Paginator)

    导入模块:from django.core.paginator import Paginator 一.Paginator的基本用法: from django.core.paginator import ...

  9. HTML静态分页(形如:首页,上一页,下一页,尾页)

    在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页  首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. &l ...

随机推荐

  1. 201521123089 《Java程序设计》第12周学习总结

    1. 本周学习总结 1. Input Stream -- 数据提供者可从其中读数据输出流:Output Stream -- 数据接收者可往其中写数据: 2. 字符流底层具体读写操作还是使用字节流: 3 ...

  2. 多线程:head first Thread.join()

    不使用Thread.join() 测试线程 先上代码: /** * Created by Zero on 2017/8/23. */ public class TestJoin implements ...

  3. panda库------对数据进行操作---合并,转换,拼接

    >>> frame2 addr age name 0 beijing 12 zhang 1 shanghai 24 li 2 hangzhou 24 cao >>> ...

  4. Jquery第三篇【AJAX 相关的API】

    前言 前面我们已经学了讲解了Jquery的选择器,关于DOM 的API还有事件的API.本博文需要讲解Jquery对AJAX的支持- 我们在开始使用JavaScript学习AJAX的时候,创建异步对象 ...

  5. Hibernate第七篇【对象状态、一级缓存】

    前言 本博文主要讲解Hibernate的细节-->对象的状态和一级缓存- 对象状态 Hibernate中对象的状态: - 临时/瞬时状态 - 持久化状态 - 游离状态 学习Hibernate的对 ...

  6. 如何延长IntelliJ IDEA的试用期?

    想打开idea写个代码...提示idea快过期...不开森...然鹅.   根据网上各种说明,总结大体分为以下4种方法: 方法1.直接输入激活码Activation Code(亲自验证有效而且非常简单 ...

  7. oracle-外连接left join的应用

    需求 自助设备交易统计 输入项 类型 可为空 备注 机构 选择 Y 采用下拉框的形式 终端号 手输 Y 与柜员号二选一 交易柜员号 手输 与终端号二选一 时间 选择 N 时间区间 状态 多选 设备状态 ...

  8. mybatis-主配置文件介绍

    mybatis下载地址:http://code.google.com/p/mybatis/ 学习手册地址:http://mybatis.github.io/mybatis-3/zh/index.htm ...

  9. WebService的简单介绍与入门使用

    WebService是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式 ...

  10. jdk版本切换

    安装1.6/1.7/1.8版本的jdk 保存jdk的安装目录下的文件 卸载所有jdk 将jdk各个版本拷贝到一个文件夹下 配置环境变量 因为安装之后系统会有注册表之类的文件,单纯的修改环境是不会修改成 ...