package cn.sxt.stmr.util;import java.util.List;/*** 分页的三个基本属性* 1.每页几条记录size  可以有默认值5* 2.当前页号  index    可以有默认值1* 3.记录总数totalCount:不可能有默认值,需要查询数据库获取真正的记录总数* * 4.一共多少页 :totalPageCount=totalCount/size+1*       5  30  31 32 33 34 35* 5.上一页    index-1  当前页1,上一页1* 6.下一页   index+1  当前页是最后一页  下一页:还是最后一页* * 扩展* 分页Bean还可以放要查询的数据  protected List<T> list;* 分页Bean还可以放页码列表     [1]  2  3  4  5   private int[] numbers;* * @author Administrator** @param <T>*/
public class PageBean<T> {private int size = 5;//每页显示记录  //okprivate int index = 1;// 当前页号                okprivate int totalPageCount = 1;// 总页数  ok private int totalCount = 0;// 记录总数  okprivate int[] numbers;//展示页数集合  okprotected List<T> list;//要显示到页面的数据集   ok/*** 得到开始记录* @return*/public int getStartRow() {return (index - 1) * size;}/*** 得到结束记录* @return*/public int getEndRow() {return index * size;}/*** @return Returns the size.*/public int getSize() {       return size;}/*** @param size* The size to set.*/public void setSize(int size) {if (size > 0) {this.size = size;}}/*** @return Returns the currentPageNo.*/public int getIndex() {if (totalPageCount == 0) {return 0;}return index;}/*** @param currentPageNo* The currentPageNo to set.*/public void setIndex(int index) {if (index > 0) {this.index = index;}}/*** @return Returns the totalCount.*/public int getTotalCount() {return totalCount;}/*** @param totalCount*  The totalCount to set.*/public void setTotalCount(int totalCount) {if (totalCount >= 0) {this.totalCount = totalCount;setTotalPageCountByRs();//根据总记录数计算总页�?}}public int getTotalPageCount() {return this.totalPageCount;}/*** 根据总记录数计算总页�?* 5   * 20    4* 23    5*/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);//获取展示页数集合}public int[] getNumbers() {return numbers;}/*** 设置显示页数集合* * 默认显示10个页码* 41  42  43  44    [45 ]   46  47  48  49  50* * *  1 2  3 [4]  5 6 7 8  9  10*  *  41  42  43  44    45    46  47  [48]  49  50* @param totalPageCount*/public void setNumbers(int totalPageCount) {if(totalPageCount>0){//!.当前数组的长度int[] numbers = new int[totalPageCount>10?10:totalPageCount];//页面要显示的页数集合int k =0;////1.数组长度<10   1 2 3 4 ....   7//2.数组长度>=10//     当前页<=6  1 2 3 4    10//     当前页>=总页数-5           ......12 13 14 15  //     其他                                5  6  7 8   9 当前页(10)  10  11 12  13for(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;}}public void setNumbers(int[] numbers) {this.numbers = numbers;}public List<T> getList() {return list;}public void setList(List<T> list) {this.list = list;}/*public static int getTotalPageCount(int iTotalRecordCount, int iPageSize) {if (iPageSize == 0) {return 0;} else {return (iTotalRecordCount % iPageSize) == 0 ? (iTotalRecordCount / iPageSize) : (iTotalRecordCount / iPageSize) + 1;}}*/
}

pageBean的介绍相关推荐

  1. 会议OA项目(项目原型图介绍发布会议功能)

    目录 一.会议OA项目介绍 为什么要开发OA会议管理 会议OA管理的作用 二.项目原型图介绍 1)会议管理 2)投票管理 3)会议室管理 三.数据库表结构 四.发布会议功能&多功能下拉框 La ...

  2. 分页功能之PageBean

    一 JavaWeb实现分页的PageBean的属性介绍 int total:总记录数,这个需要从数据库中查询得到 int pageSize:每页显示的记录数,一般是设定好的具体数值 int pageN ...

  3. 简单介绍互联网领域选择与营销方法

    在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...

  4. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

  5. python:Json模块dumps、loads、dump、load介绍

    20210831 https://www.cnblogs.com/bigtreei/p/10466518.html json dump dumps 区别 python:Json模块dumps.load ...

  6. pytorch学习笔记(九):PyTorch结构介绍

    PyTorch结构介绍 对PyTorch架构的粗浅理解,不能保证完全正确,但是希望可以从更高层次上对PyTorch上有个整体把握.水平有限,如有错误,欢迎指错,谢谢! 几个重要的类型 和数值相关的 T ...

  7. Python字节码介绍

    了解 Python 字节码是什么,Python 如何使用它来执行你的代码,以及知道它是如何帮到你的. 如果你曾经编写过 Python,或者只是使用过 Python,你或许经常会看到 Python 源代 ...

  8. Pytest - 使用介绍

    1. 概述 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手,文档丰富: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单 ...

  9. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

最新文章

  1. 【SAP-PM模块】服务采购业务流程
  2. 计算机软件硬件试讲,试讲:初识计算机网络
  3. 有理数的小数表示若无限,则必为无限循环的
  4. 李洋疯狂C语言之选择排序
  5. android页面跳转时获取地址栏,Android 利用scheme页面内跳转协议进行跳转
  6. 走进Windows Server 2008服务器核心(Serve Core)
  7. php取key的value值,获取数组中key和value的值
  8. python朴素贝叶斯分类MNIST数据集
  9. java 断点续传 开源_java断点续传后台代码
  10. sql azure 语法_Azure SQL Server中的CREATE DATABASE语句概述
  11. Swarm搭建Docker集群
  12. Stanford CoreNLP--Part of Speech
  13. Android NotificationManager详解
  14. 物联网时代的技术迷雾
  15. 计算机文化基础知识点第十一版,计算机文化基础知识点总结(经典版) 考试专用.doc...
  16. 【渝粤题库】陕西师范大学202013 民法专论 作业
  17. 森林防火系统集成解决方案
  18. 11gR2 新特性--待定的统计信息(Pending Statistic)
  19. 机器学习入门的绝佳材料:斯坦福大学机器学习课程原始讲义(含公开课视频)
  20. linux自定义刷新率,Linux下设置其分辨率及刷新率

热门文章

  1. CentOS6.5挂载U盘
  2. 什么软件可以截取电视剧视频片段?这3款软件极易上手!
  3. / ./ ../的区别
  4. 学习OpenCV2——Mat之通道的理解
  5. W10摄像头0xA00F4289和0xA00F4244等错误解决
  6. 微信小程序九宫格抽奖
  7. Matlab | 省略号作用
  8. 【数据结构算法】-- C语言
  9. Unity官方案例——Roll a ball
  10. Oauth2 存储 token 到Redis 报错:READONLY You can‘t write against a read only slave