当前位置: 首页 > news >正文

java分页代码

package common.util;

import java.util.*;

public class PageController implements IPageModel {

  private Collection model;

  //数据总行数 

  private int totalRowCount = 0; //

  //总页数

  private int pageCount = 0;

  //每页应显示的行数

  private int maxPageRowCount = 0;

  //当前页行数

  private int currPageRowCount = 0;

  //当前页号

  private int currPageNum;

  //默认构造 

  public PageController() {

    super();

  }

  //传入模型

  public PageController(Collection model) {

    setPageController(model);

  }

  //设一个分页模型

  public void setPageController(Collection model) {

    this.model = model;

    this.totalRowCount = model.size();

  }

  /**

   * 总页数

   * @return int

   */

  public int getPageCount() {

    return this.pageCount;

  }

  /**

   * getPageContents

   *

   * @param intPageNum int

   * @return Object

   */

  public Object getPageContents(int intPageNum) {

    //非法数据

    if(intPageNum<1){

      intPageNum=1;

    }

    if(intPageNum>pageCount){

      intPageNum=pageCount;

    }

    //指定当前页

    this.currPageNum=intPageNum;

    int i = 0;

    ArrayList arr = new ArrayList();

    //如果是合法的范围

    if (intPageNum > 0 && intPageNum <= pageCount) {

      //计算该页的开始号和结束号

      int lfromrow = (intPageNum - 1) * maxPageRowCount;

      arr = (ArrayList) getElementsAt(model, lfromrow, lfromrow + maxPageRowCount-1);

    }

   currPageNum=intPageNum;

    return arr;

  }

  public Object getLastPage() {

    return this.getPageContents(pageCount);

  }

  public Object getFirstPage() {

    return this.getPageContents(0);

  }

  /**

   * getCurrentPageRowsCount

   *

   * @return int

   */

  public int getCurrentPageRowsCount() {

    if(currPageNum<pageCount){

      return maxPageRowCount;

    }

    else{//最后一页

      return totalRowCount-(pageCount-1)*maxPageRowCount;

    }

  }

  public int getCurrentPageNum(){

    return currPageNum;

  }

  /**

   * setMaxPageRows

   *

   * @return int

   */

  public void setMaxPageRows(int rowCount) {

    maxPageRowCount = rowCount;

    //计算总页数

    if (totalRowCount % maxPageRowCount > 0) { //有余数

      pageCount = totalRowCount / maxPageRowCount + 1;

    }

    else {

      pageCount = totalRowCount / maxPageRowCount;

    }

  }

  /**

   * getMaxPageRows

   */

  public int getMaxPageRows() {

    return maxPageRowCount;

  }

  //私有方法,返回集合中指定范围的数据

  private Object getElementsAt(Collection model, int fromIndex, int toIndex) {

    Iterator iter = model.iterator();

    ArrayList arr = new ArrayList();

    if (iter != null) {

      int i = 0;

      while (iter.hasNext()) {

        Object obj=iter.next();

        if (i >= fromIndex && i <= toIndex) {

          arr.add(obj);

        }

        if (i > toIndex) {

          break;

        }

         i = i + 1;

      }

    }

    return arr;

  }

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • java过滤http危险字符
  • iOS开发 - 网络数据安全加密(MD5)
  • flex定时处理
  • 数据结构:队列Queue的实现与代码分析
  • 【bzoj2333】 SCOI2011—棘手的操作
  • java各数据类型之间的转换
  • Android笔记(三):View一些值得注意的地方
  • java常用正则表达式
  • Ubuntu 检测到系统出现问题 弹窗 嘿嘿
  • 日期年月日正则表达式
  • 最近一周的日期选择设置
  • hibernate增加,删除,修改,查找操作
  • javaWEB总结(17):cookie概述
  • flex获得当前player版本信息
  • Struts入门(二) 配置文件的讲解
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • Django 博客开发教程 8 - 博客文章详情页
  • git 常用命令
  • overflow: hidden IE7无效
  • Spring框架之我见(三)——IOC、AOP
  • windows下如何用phpstorm同步测试服务器
  • 排序算法学习笔记
  • 数据仓库的几种建模方法
  • 消息队列系列二(IOT中消息队列的应用)
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • linux 淘宝开源监控工具tsar
  • 整理一些计算机基础知识!
  • ​力扣解法汇总946-验证栈序列
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #define用法
  • #define与typedef区别
  • #laravel 通过手动安装依赖PHPExcel#
  • #Ubuntu(修改root信息)
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (2020)Java后端开发----(面试题和笔试题)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (八)Flink Join 连接
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (离散数学)逻辑连接词
  • (十)Flink Table API 和 SQL 基本概念
  • (十五)使用Nexus创建Maven私服
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)VirtualBox安装增强功能
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (自适应手机端)行业协会机构网站模板
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • **PHP二维数组遍历时同时赋值
  • *上位机的定义
  • .DFS.