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;
}
}

  

时间: 2025-01-18 17:50:35

java分页的相关文章

浅谈Java分页技术

话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int  pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount;//一共有多少页 int rowCount;//一共有多少条记录 说明: 1.pageSize是指定的 2.pageNow是用户选择的 3.rowCount是从表中查询得到的 4.pageCount是计算得到的,该计算为: if(rowCount%pageSize==0) { pageCount=r

数据量你造吗-JAVA分页

数据量你造吗-JAVA分页 原创地址:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),需要转载的,保留下! Thanks 学习的心态第一,解行要相应.其实<弟子规>在"余力学文"当中,一开头就强调了这一个重点."不力行,但学文,长浮华,成何人",这个没有侥幸的,只要学了不去做,无形当中就会增长傲慢,自己不知道.-<弟子规> Written In The Font JAVA-Web 基础那块,我自己也

Java 分页工具

[背景] 最近学习Spring MVC,涉及到分页显示的问题,准备自己整理一个分页工具.由于以前使用Strus框架使用 NewPandaKing 的一个PageBean和Page方法,耦合性比较高,于是优化一下. [优点] 耦合低,使用方便. [缺点] 由于耦合低,不查数据库,所以每次使用List的sublist方法,效率降低. 代码如下: 分页工具类:PageUtil.java /** * Java 分页工具类 */ package com.util; import java.util.Has

java分页组件简单设计(贼简单)

代码很简单,关键是思想. 每个业务模块基本都会涉及到分页的应用,不管是普通的分页浏览还是瀑布流形式的浏览.分页可以减轻服务器的压力,可以节俭页面布局.在我们的分页简单组件设计中,主要是需要返回给客户端四个数据:列表对象.当前页码.每页记录最大条数.记录总数. 列表对象:顾名思义,就是展示给用户看的当前页面记录: 当前页码:主要是需要js来高亮: 每页记录最大条数:一般是服务器设定 记录总数:js用来计算总页数使用 设计思想: 1.由于分页是一种可以公共使用的功能,所以可以开发成一个组件,这样可以

java 分页封装类

//后台Page.javapackage com.complaints.util;5import java.util.List;import java.util.Map;public class Page { private String pageBar; private int pageCount;//页总数 private int rowCount;//总行数 private int pagesize = 10;//每页显示的数据记录 private int curPage;//当前页 pr

java 分页代码

java======================== /** * 分页实体类 * @version [版本号, Nov 9, 2011] */public class Page { private int currentPage;//当前页 private int pageSize; //分页大小 private int totalNum; //总条数 private int totalPage; //总页数 private String url; //url地址 //private Obj

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

1.首先,新建一个类Page.java 1 public class Page implements Serializable { 2 private static final long serialVersionUID = -3198048449643774660L; 3 private int pageNow = 1; // 当前页数 4 private int pageSize = 10; // 每页显示记录的条数 5 private int totalCount; // 总记录条数 6

java分页功能代码

import java.util.ArrayList; import java.util.List; /** * * @author cheney * * @date Aug 31, 2012 */ public class PageModel<T> { private int page = 1; // 当前页 public int totalPages = 0; // 总页数 private int pageRecorders;// 每页5条数据 private int totalRows

Java分页类 Page

import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Iterator; import java.util.List; import net.sf.json.JSONObject; /** * 分页类 * @author rubekid * * @param <T> */ public class Page<T> extends QueryParameter

Java分页内容实例详解

首先定义一个fruit表,表里含有很多数据: 定义一个数据文件: public class Fruit { public String getIds() { return ids; } public void setIds(String ids) { this.ids = ids; } public String getName() { return name; } public void setName(String name) { this.name = name; } public dou