java分页
package entity; public class Page { //记录当前页的状态信息 private int num; //当前页号,采用自然数计数 1,2,3,... private int size; //一页显示多少个数据 private int rowCount; //记录的总数目(一共有多少个数据) private int pageCount; //页面总数(n页) private int startRow; //当前页开始行号,第一行是0行 private int first=1; //第一页 页号 private int last; //最后页 页号 private int next; //下一页 页号 private int prev; //前一页 页号 private int start; // 页号式导航, 起始页号 private int end; // 页号式导航, 结束页号 private int numCount = 4; // 页号式导航, 最多显示页号数量为numCount+1;这里显示5页。 public Page(int size, String str_num, int rowCount) { int num = 1; if (str_num != null) { //str_num,起始记录号 num = Integer.parseInt(str_num); } this.num = num; this.size = size; this.rowCount = rowCount; this.pageCount = (int) Math.ceil((double) rowCount / size); //**获取页数的总数,ceil是进1取整 this.num = Math.min(this.num, pageCount); //当前页号最大值为pageCount this.num = Math.max(1, this.num); //当前页号最小值为1 this.startRow = (this.num-1) * size; //开始行号为 0行 this.last = this.pageCount; //最后一页页号为pageCount this.next = Math.min(this.pageCount, this.num+1); //最后一页为pageCount或者为当前页+1 this.prev = Math.max(1, this.num-1); //最前一页为1或者为当前页-1 // 计算page 控制 //当点击7的时候只出现5到9,当点击8的时候,只出现6到10 //若是出现1-5或者6-10,则可改为:if((this.num+1)%(numCount+1)==0){ //start=(this.num+1)%(numCount+1)-1*(numCount+1)+1;} //else{ start=this.num/(numCount+1)*(numCount+1)+1;} //比如15和14 //本页显示页号从多少页开始,eg:7-4/2=5(第七页就是从第五页开始) start = Math.max(this.num - numCount/2, first); //本页显示页号在多少页号结束 eg:5+4=9(若本页是第七页,则本页开始页为5,结束页为9,每页显示5个) end = Math.min(start + numCount, last); if (end - start < numCount) { //如果记录数小于4 start = Math.max(end - numCount, 1); //开始页为1和结束页号-记录数的最大值 } } public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public int getRowCount() { return rowCount; } public void setRowCount(int rowCount) { this.rowCount = rowCount; } public int getPageCount() { return pageCount; } public void setPageCount(int pageCount) { this.pageCount = pageCount; } public int getStartRow() { return startRow; } public void setStartRow(int startRow) { this.startRow = startRow; } public int getFirst() { return first; } public void setFirst(int first) { this.first = first; } public int getLast() { return last; } public void setLast(int last) { this.last = last; } public int getNext() { return next; } public void setNext(int next) { this.next = next; } public int getPrev() { return prev; } public void setPrev(int prev) { this.prev = prev; } public int getStart() { return start; } public void setStart(int start) { this.start = start; } public int getEnd() { return end; } public void setEnd(int end) { this.end = end; } public int getNumCount() { return numCount; } public void setNumCount(int numCount) { this.numCount = numCount; } }
也可参考http://www.cnblogs.com/liushuijinger/p/3271815.html
java分页的更多相关文章
- 数据你把它的金额-JAVA分页
数据量你造吗-JAVA分页 原创地址: http://www.cnblogs.com/Alandre/ (泥沙砖瓦浆木匠),须要转载的,保留下! Thanks 学习的心态第一,解行要对应. 事实 ...
- 浅谈Java分页技术
话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount; ...
- 一个方便的java分页算法
一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * ...
- [Java] 一种好的JAVA分页实现
喃都不说了,贴代码,意思都在代码里面了 Page.java //分页类.定义分页字段信息,供前台页面使用 package com.core.common; import java.util.List; ...
- JAVA 分页工具类及其使用
Pager.java package pers.kangxu.datautils.common; import java.io.Serializable; import java.util.List; ...
- pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页
java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...
- java 分页功能
1.分页工具类 package com.bw.shop.util; import java.util.List; import com.sun.org.apache.regexp.internal.r ...
- Java分页需求
近期在实现项目接口时,经常需要分页功能.有时返回“String”,有时是“Object”格式的分页List.针对这种情况,本人用java实现对List分页. 第一版 package org.sun.j ...
- java分页问题
问题一:所有数据分页显示后 点击下一页跳转到第二页后 填写查询条件在点击查询按钮,分页出现问题(页码有问题) 默认没有从第一页开始显示 解决方案:问题出在取的当前页有问题,把当前页设置为第一页(0), ...
- Java 分页通用
1.定义分页模型:PageModel package com.common.page; import java.util.List; /** * 封装分页信息 * @author Administra ...
随机推荐
- Java虚拟机工作原理详解 (一)
一.类加载器 首先来看一下java程序的执行过程. 从这个框图很容易大体上了解java程序工作原理.首先,你写好java代码,保存到硬盘当中.然后你在命令行中输入 javac YourClassNam ...
- ssh相关操作
连接:ssh username@ip 拷贝ssh客户端文件到ssh服务器: cp 文件名 username@ip:文件名 拷贝ssh服务器文件夹到ssh客户端: scp -r wanglianghe@ ...
- Linux 下安装 jdk步骤:
一:在安装自己下载的jdk之前,要先看看新安装的CentOS 6.4系统自带的jdk版本,如果存在最好是卸载掉,然后再安装自己下载的jdk版本,如何卸载linux系统自带的jdk网上有很多例子,相信大 ...
- Elasticsearch集群中处理大型日志流的几个常用概念
之前对于CDN的日志处理模型是从logstash agent==>>redis==>>logstash index==>>elasticsearch==>&g ...
- JS案例之8——从一个数组中随机取数
近期项目中遇到一个需求,从一个列表中随机展示列表的部分内容,需求不大,JS也非常容易实现.主要是运用到了Math对象的random方法,和Array的splice方法. 思路是先新建一个数组,存放所有 ...
- Opencv step by step - 视频进度条
上一个博文只是进行了视频播放,这里加上进度条. 下面是修改好的代码: #include <cv.h> #include <highgui.h> /* * tan@ubuntu: ...
- 20145208 实验二 Java面向对象程序设计
20145208 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...
- CAS ticket过期策略
CAS提供可扩展的ticket过期策略,支持ticket-granting tickets (TGT)和service tickets (ST)的配置. CAS客户端存储用户信息一般使用session ...
- android的progressDialog 的使用。android数据异步加载 对话框提示
在调用的Activity中定义一个全局的 progressDialog 点击按钮的时候调用下面这句 progressDialog = ProgressDialog.show(SearchActivit ...
- vs2015发现一个字符串拼接 bug
VS2015支持 字符串拼接 如下: string user="test"; int password=123; string sql=$" user={user};pa ...