package com.zzuli.util;

 import java.util.List;

 /**
* PageBean类
* @author hejjon
* @date 2019年6月8日 下午2:18:50
* @param <T>
*/
public class PageBean<T> {
private int size; // 每页要显示的记录条数 指定默认为5
private int index; // 当前页号
private int totalPageCount; // 总页数
private int totalCount; // 记录总条数 private int[] numbers; // 展示页数的数组
private List<T> list; // 要显示到页面的数据集合 /**
* 获取起始下标
* @return
*/
public int getStartRow() {
return (index - 1) * size;
} /**
* 获取结束下标
* @return
*/
public int getEndRow() {
return index * size;
} /**
* 获取每页要显示的记录条数
* @return
*/
public int getSize() {
return size;
} /**
* 设置每页要显示的记录条数
* @param size
*/
public void setSize(int size) {
if (size > 0) {
this.size = size;
}
} /**
* 获取当前页号
* @return
*/
public int getIndex() { if (totalPageCount == 0) {
return 0;
}
return index;
} /**
* 设置当前页号
* @param index
*/
public void setIndex(int index) {
if (index > 0) {
this.index = index;
}
} /**
* 获取记录总条数
* @return
*/
public int getTotalCount() {
return totalCount;
} /**
* 设置记录总条数
* @param totalCount
*/
public void setTotalCount(int totalCount) {
if (totalCount > 0) {
this.totalCount = totalCount;
setTotalPageCountByRs(); // 根据总记录数计算总页数
}
} /**
* 获取总页数
* @return
*/
public int getTotalPageCount() {
return totalPageCount;
} /**
* 根据总记录条数计算总页数
*/
private void setTotalPageCountByRs() {
if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size == 0) {
this.totalPageCount = this.totalCount / this.size;
} else if (this.size > 0 && this.totalCount > 0 && this.totalCount % this.size > 0) {
this.totalPageCount = this.totalCount / this.size + 1;
} else {
this.totalPageCount = 0;
}
// 设置展示页数数组
setNumbers(totalPageCount);
} /**
* 获取展示页数的数组
* @return
*/
public int[] getNumbers() {
return numbers;
} /**
* 设置展示页数的数组
* @param numbers
*/
public void setNumbers(int totalPageCount) {
if (totalPageCount > 0) {
// 当前数组长度
int[] numbers = new int[totalPageCount > 10 ? 10 : totalPageCount];
int k = 0; for (int i = 0; i < totalPageCount; i++) {
if ((i >= index - (numbers.length / 2 + 1) || i >= totalPageCount - numbers.length)
&& k < numbers.length) {
numbers[k] = i + 1;
k++;
} else if (k >= numbers.length) {
break;
}
}
this.numbers = numbers;
} } /**
* 获取要显示到页面的数据集合
* @return
*/
public List<T> getList() {
return list;
} /**
* 设置要显示到页面的数据集合
* @param list
*/
public void setList(List<T> list) {
this.list = list;
}
} // end PageBean

JavaWeb分页-----PageBean.java的更多相关文章

  1. javaweb分页查询实现

    Javaweb分页技术实现 分页技术就是通过SQL语句(如下)来获取数据,具体实现看下面代码 //分页查询语句 select * from 表名 where limit page , count; 和 ...

  2. Mybatis包分页查询java公共类

    Mybatis包分页查询java公共类   分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...

  3. pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页

    java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...

  4. 做JavaWeb开发不知Java集合类不如归家种地

    Java作为面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储.但是使用数组存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容 ...

  5. 住javaWeb分页实现(模拟百度首页)

    本文来源于 http://blog.csdn.net/tjpu_lin/article/details/41050475 近期在开发一个项目,项目中有非常多数据展示的模块.所以要用到分页,网上搜了非常 ...

  6. javaweb分页思想

    web上的分页分析   在web编写中的经常会遇到,数据需要分页的情况.当数据量不是很大的时候.   可以直接使用js来分页.可以很好的提高性能.简化代码.数据量大的时候.还是需要使用java的分页类 ...

  7. cassandra高级操作之分页的java实现(有项目具体需求)

    接着上篇博客,我们来谈谈java操作cassandra分页,需要注意的是这个分页与我们平时所做的页面分页是不同的,具体有啥不同,大家耐着性子往下看. 上篇博客讲到了cassandra的分页,相信大家会 ...

  8. Javaweb分页功能简单实现

    效果如下图 数据库中的数据                                                                页面效果 首先,创建一个通用类Page,代码及 ...

  9. MongoDB分页的Java实现和分页需求的思考

    前言 传统关系数据库中都提供了基于row number的分页功能,切换MongoDB后,想要实现分页,则需要修改一下思路. 传统分页思路 假设一页大小为10条.则 //page 1 1-10 //pa ...

随机推荐

  1. error: Libtool library used but 'LIBTOOL' is undefined

    编译时出现: error: Libtool library used but ‘LIBTOOL’ is undefined 参考了一下: http://stackoverflow.com/questi ...

  2. 如何用<dl>标签做表格而不用table标签

    我们都知道很多的内容编辑器(TinyMCE编辑器.fck)都有插入表格功能,快速方便,但是这些表格用到的<table>标签,可以查看html源代码就能发现,table标签对搜索引擎不是很友 ...

  3. VSS 使用方法

    VSS 的全称为 Visual Source Safe .作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理,几乎可以适用任何软件项目.管理软件开发中各 ...

  4. USACO Party Invitations

    洛谷 P3068 [USACO13JAN]派对邀请函Party Invitations 洛谷传送门 JDOJ 2343: USACO 2013 Jan Silver 3.Party Invitatio ...

  5. git crate&query&delete tag(九)

    root@vmuer-VirtualBox:/opt/myProject# git log --pretty=oneline0169b7a1c4bccb47e76711f353fd8d3864bde9 ...

  6. ESA2GJK1DH1K开发教程: 来看看最新整理的整个开发板的教程大纲吧

    项目开发:教程大纲(测试板型号:ESA2GJK1DH1K) 购买链接: https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.25911deb ...

  7. 请写出jQuery绑定事件的方法,不少于两种

    bind on live one 简写事件:click.hover.mousemove.mouseup.mousedown……

  8. 学习知识点的比较好的blog

    树状数组 https://blog.csdn.net/flushhip/article/details/79165701 FFT https://blog.csdn.net/ggn_2015/arti ...

  9. 【CSP-S膜你考】 A

    A 题面 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) , 其中每个正整数都能表示成两个质数乘积. 输入格式 第一行一个正整数 q,表示询问组数. 接下来 q 行,每行一个 ...

  10. DOM操作 三大家族

    clientHeight     获取对象的高度,不计算任何边距.边框.滚动条,但包括该对象的补白.   clientLeft     获取    offsetLeft     属性和客户区域的实际左 ...