ページングツールクラスPage
3214 ワード
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ページングツールクラス
ページングツールバーは次のように表示されます.
改ページ:上10ページ11 12 13 14 15 16 17 18 20下10ページ