您的位置:首页 > 其它

web分页技术

2016-06-08 18:03 330 查看
page.java

package com.kiddie.collection;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Page<T> {

private List<T> list;// 装载数据的集合
private int total;// 总记录数
private int totalpage;// 总页数
private int pagesize;// 每页显示的记录
private int start;// 从第X条记录开始
private int curpage;// 当前页面
private int startpage;// 开始页面
private int endpage;// 结束页面,用来判断还有没有下一页
private int prepage;// 上一页
private int nextpage;// 下一页

public void setPagesize(int pagesize) {
this.pagesize = pagesize;// 设置每页显示的记录数
if (this.pagesize <= 0)// 这可能出现0页或者负数的每页记录数
this.pagesize = 10;// 默认为10
setTotalPage();
// 改变了每页显示条数,开始的页面就要重新设置
if ((this.start % this.pagesize) == 0) {
this.curpage = this.start / this.pagesize;// 设置当前的页面
} else {
this.curpage = (this.start / this.pagesize) + 1;// 不够显示记录数也要多加一页
}
this.startpage = 1;// 设置起始页面
this.endpage = totalpage;// 设置结束页面
checkStartAndCurPage();
setPreAndNextPage();
}

// 下一页
public int nextPage() {
if (curpage >= totalpage) {// 没有下一页
this.curpage = totalpage;
} else {// 有下一页
this.curpage = this.curpage + 1;
}
this.start = this.curpage * pagesize;// 开始的记录数
// 设置上一页,下一页
setPreAndNextPage();
checkStartAndCurPage();
return this.curpage;
}

// 上一页
public int prePage() {
if (curpage == 1) {// 没有上一页
this.curpage = 1;
} else {
this.curpage = this.curpage - 1;
}
this.start = this.curpage * pagesize;
// 设置上一页,下一页
checkStartAndCurPage();
setPreAndNextPage();
return this.curpage;
}

// 初始化要传入总记录数和当前页面
public Page(int total, int curpage) {
this.total = total;// 总记录数
this.curpage = curpage;// 当前页面
this.pagesize = 10;// 没有传入值,就默认每页显示10条
this.start = (this.curpage - 1) * this.pagesize;// 数据库0条记录开始,所有页数-1
this.startpage = 1;// 开始页面
setTotalPage();
this.endpage = totalpage;
checkStartAndCurPage();
setPreAndNextPage();
list = new ArrayList<T>();
}

// 初始化要传入总记录数和当前页面,页面记录数
public Page(int total, int curpage, int pagesize) {
this.total = total;
this.curpage = curpage;
this.pagesize = pagesize;
if (this.pagesize <= 0)
this.pagesize = 10;
this.start = (this.curpage - 1) * this.pagesize;
this.startpage = 1;
setTotalPage();
this.endpage = totalpage;
checkStartAndCurPage();
setPreAndNextPage();
list = new ArrayList<T>();
}

// 检查开始记录位置和当前页码是否超出了界限
private void checkStartAndCurPage() {
if (this.curpage > this.totalpage) {
this.curpage = this.totalpage;
}
this.start = (this.curpage - 1) * this.pagesize;
if (this.start < 0)//记录总量有可能是0
this.start = 0;
}

private void setTotalPage() {
if ((this.total % this.pagesize) == 0) {
this.totalpage = this.total / this.pagesize;// 每页显示记录数变了,总页数也跟着变
} else {
this.totalpage = (this.total / this.pagesize) + 1;// 不够显示记录数也要多加一页
}
}

private void setPreAndNextPage() {
// 设置上一页,下一页
if (this.curpage <= 1 && totalpage > 1) {// 总页数>1的情况
this.prepage = 1;
this.nextpage = this.curpage + 1;
} else if (this.curpage <= 1 && totalpage <= 1) {// 总页数<=1的情况
this.prepage = 1;
this.nextpage = 1;
} else if (this.curpage >= this.totalpage) {// 当前页数为总页数
this.prepage = this.curpage - 1;
this.nextpage = this.curpage;
} else {// 普通情况
this.prepage = this.curpage - 1;
this.nextpage = this.curpage + 1;
}
}

public List<T> getList() {
return list;
}

public void setList(List<T> list) {
this.list = list;
}

public int getTotal() {
return total;
}

public int getTotalpage() {
return totalpage;
}

public int getPagesize() {
return pagesize;
}

public int getStart() {
return start;
}

public int getCurpage() {
return curpage;
}

public int getStartpage() {
return startpage;
}

public int getEndpage() {
return endpage;
}

public int getPrepage() {
return prepage;
}

public int getNextpage() {
return nextpage;
}

@Override
public String toString() {
return "Page [list=" + list + ", total=" + total + ", totalpage="
+ totalpage + ", pagesize=" + pagesize + ", start=" + start
+ ", curpage=" + curpage + ", startpage=" + startpage
+ ", endpage=" + endpage + ", prepage=" + prepage
+ ", nextpage=" + nextpage + "]";
}

public static void main(String[] args) {
Random random = new Random();
for(int i =0;i<=20;i++)
{
int total = random.nextInt(1000);
int cur = random.nextInt(15);
int size = random.nextInt(100);
System.out.println(new Page<Object>(total, cur, size)+"\n");

}
}
}


在页面中使用Page类来装载所要显示的用户
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: