分页工具类Page

public class Page {

public static int MAX_ROW = 10;
private int index;
private int page_num;
private int total;
private String url;

public Page(int index, int total, String url) {
this.index = index;
this.total = total;
this.url = url;
this.page_num = total%MAX_ROW==0? total/MAX_ROW : total/MAX_ROW+1;
}

public String getFooter() {
//不足一页 不显示分页信息
if(total<=MAX_ROW) {
return "";
}
StringBuffer sb = new StringBuffer("分页:");
//不足MAX_ROW页
if(page_num <= MAX_ROW) {
for(int i=0; i<page_num; i++) {
insertTag(sb, i);
}
if(index+MAX_ROW < total) {
insertTag(sb, index+MAX_ROW, "下一页");
} else {
sb.append("下一页");
}
return sb.toString();
} else {
int unit = MAX_ROW * MAX_ROW;
if(index < unit) {
int i;
for(i=0; i<MAX_ROW; i++) {
insertTag(sb, i);
}
String tt = "下" + MAX_ROW + "页";
insertTag(sb, i*MAX_ROW, tt);
return sb.toString();
} else {
//当前页
int currentPage = index/MAX_ROW;
//当前面 一面有MAX_ROW页
int currentSection = currentPage/MAX_ROW + 1;
//上一面起始页
int lastPage = (currentSection-1) * MAX_ROW - 1;
//上一面起始记录
int lastPageRow = lastPage * MAX_ROW;
//下一面起始页
int nextPage = currentSection * MAX_ROW;
//下一面起始记录
int nextPageRow = nextPage * MAX_ROW;
String tt = "上" + MAX_ROW + "页";

insertTag(sb, lastPageRow, tt);
//是否显示下一面
if(nextPageRow <= total-1) {
for(int i=0; i<MAX_ROW; i++) {
insertTag(sb, i+lastPage + 1);
}
tt = "下" + MAX_ROW + "页";
insertTag(sb, nextPageRow, tt);
} else {
int lengthOfPage = total - (lastPage + 1) * MAX_ROW;
lengthOfPage = lengthOfPage/MAX_ROW + 1;
for(int i=0; i<lengthOfPage; i++) {
insertTag(sb, i - 1 + lastPage);
}
}
return sb.toString();
}
}
}

public void insertTag(StringBuffer sb, int num) {
int temp = index/MAX_ROW;
if(num==temp) {
sb.append(num+1).append(" ");
} else {
sb.append("<a href=" + url + "&start_index=");
sb.append(num*MAX_ROW).append(">").append(num+1).append("</a> ");
}
}

public void insertTag(StringBuffer sb, int num, String str) {
sb.append("<a href=" + url + "&start_index=");
sb.append(num).append(">").append(str).append("</a> ");
}

public static void main(String[] args) {
System.out.println(new Page(120,250,"http://www.g.cn").getFooter());
//输出: 分页:上10页 11 12 13 14 15 16 17 18 19 20 下10页
}
}


JAVA分页工具类
分页工具栏显示为:
[color=red]分页:上10页 11 12 13 14 15 16 17 18 19 20 下10页[/color]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值