1. PagerUtil
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Vector;
public class PagerUtil {
private int pageSize = 10;// 每页大小
private int nextPage;// 下一页
private int prePage;// 前一页
private int pageCount;// 总页数
private int currentPage;// 当前页
private int listSize = 0;// 记录总数
private ArrayList alist = new ArrayList();
private String url;
/** *//**
* 初始化记录列表
* @param it Iterator
* @return ArrayList
*/
public ArrayList getAlist(Iterator it) {
ArrayList al = new ArrayList();
while (it.hasNext()) {
al.add(it.next());
}
return al;
}
/** *//**
* 构造方法
* @param list Collection
*/
public PagerUtil(Collection list) {
alist = this.getAlist(list.iterator());
listSize = alist.size();
nextPage = 1;
prePage = 0;
pageCount = listSize / pageSize + 1;
currentPage = 1;
}
/** *//**
* 构造方法
* @param list Collection
* @param pageSize int
*/
public PagerUtil(Collection list, int pageSize) {
alist = (ArrayList) list;
this.pageSize = pageSize;
listSize = alist.size();
nextPage = 1;
prePage = 0;
pageCount = listSize / pageSize;
if (listSize % pageSize > 0) {
pageCount = pageCount + 1;
}
currentPage = 1;
}
public PagerUtil(Vector v, int pageSize) {
for (int i = 0; i < v.size(); i++) {
alist.add(v.get(i));
}
this.pageSize = pageSize;
listSize = alist.size();
nextPage = 1;
prePage = 0;
pageCount = listSize / pageSize;
if (listSize % pageSize > 0) {
pageCount = pageCount + 1;
}
currentPage = 1;
}
/** *//**
* 下一页
* @return ArrayList
*/
public int nextPage() {
int tempInt = 1;
if (currentPage < this.getPageCount() && currentPage >= 1) {
tempInt = currentPage + 1;
} else
tempInt = 1;
return tempInt;
}
/** *//**
* 前一页
* @return ArrayList
*/
public int prePage() {
int tempInt = 1;
if (currentPage > 1) {
tempInt = currentPage - 1;
} else
tempInt = this.getPageCount();
return tempInt;
}
/** *//**
* 第一页
* @return ArrayList
*/
public int firstPage() {
nextPage = 1;
prePage = this.getPageCount();
currentPage = nextPage;
return currentPage;
}
/** *//**
* 最后一页
* @return ArrayList
*/
public int endPage() {
nextPage = this.getPageCount();
prePage = nextPage - 1;
currentPage = nextPage;
return currentPage;
}
/** *//**
* 根据当前页得到记录列表
* @param currentPage int
* @return ArrayList
*/
public ArrayList getPageList() {
ArrayList tempList = new ArrayList();
for (int i = (currentPage - 1) * pageSize; i < (currentPage - 1)
* pageSize + pageSize; i++) {
if (i >= 0 && i < this.alist.size()) {
tempList.add(alist.get(i));
} else
break;
}
return tempList;
}
public String getPageCtrlString() {
String strCtrl = "";
if (this.currentPage == 1) {
//strCtrl = "首页 ";
} else {
strCtrl = "<a href='" + url + "&page=1'>首页</a> ";
}
if (this.currentPage == 1) {
//strCtrl = strCtrl + "上一页 ";
} else {
strCtrl = strCtrl + "<a href='" + url + "&page=" + this.prePage() + "'>上页</a> ";
}
for (int i = 1; i <= this.pageCount; i++) {
strCtrl = strCtrl + "<a href='" + url + "&page=" + i + "'>[" + i + "]</a> ";
}
if (this.currentPage == this.pageCount) {
//strCtrl = strCtrl + "下一页 ";
} else {
strCtrl = strCtrl + "<a href='" + url + "&page=" + this.nextPage() + "'>下页</a> ";
}
if (this.currentPage == this.pageCount) {
//strCtrl = strCtrl + "末页 ";
} else {
strCtrl = strCtrl + "<a href='" + url + "&page=" + this.getPageCount() + "'>末页</a> ";
}
// strCtrl = strCtrl + "\n\r"; //换行
// strCtrl = strCtrl
// + "跳到 <select name='toPage' onChange=\"window.location='" + url
// + "?page='+this.options[this.selectedIndex].value;\">";
/*
if (this.currentPage == 1) {
strCtrl = "首页 ";
} else {
strCtrl = "<a href='" + url + "?page=1'>首页</a> ";
}
if (this.currentPage == 1) {
strCtrl = strCtrl + "上一页 ";
} else {
strCtrl = strCtrl + "<a href='" + url + "?page=" + this.prePage() + "'>上页</a> ";
}
if(this.getPageCount() <= 1) {
} else if(this.getPageCount() <= 5) {
for (int i = 1; i <= this.getCurrentPage(); i++) {
if (i == this.getCurrentPage()) {
strCtrl = strCtrl + "<b>" + i + "</b> ";
} else {
strCtrl = strCtrl + "<a href='" + url + i + "'>" + i + "</a> ";
}
}
} else if(4 < this.getCurrentPage() && this.getCurrentPage() < (this.getPageCount() - 3)) {
for (int i = this.getCurrentPage() - 3; i <= this.getCurrentPage() + 3; i++) {
if (i == this.getCurrentPage()) {
strCtrl = strCtrl + "<b>" + i + "</b> ";
} else {
strCtrl = strCtrl + "<a href='" + url + i + "'>" + i + "</a> ";
}
}
} else if(this.getCurrentPage() <= 4) {
for (int i = 1; i <= 5; i++) {
if (i == this.getCurrentPage()) {
strCtrl = strCtrl + "<b>" + i + "</b> ";
} else {
strCtrl = strCtrl + "<a href='" + url + i + "'>" + i + "</a> ";
}
}
} else if((this.getPageCount() - 6) <= this.getCurrentPage()) {
for (int i = this.getPageCount() - 6; i <= this.getPageCount(); i++) {
if (i == this.getCurrentPage()) {
strCtrl = strCtrl + "<b>" + i + "</b> ";
} else {
strCtrl = strCtrl + "<a href='" + url + i + "'>" + i + "</a> ";
}
}
} else {
for (int i = this.getCurrentPage() - 3; i <= this.getCurrentPage() + 3; i++) {
if (i == this.getCurrentPage()) {
strCtrl = strCtrl + "<b>" + i + "</b> ";
} else {
strCtrl = strCtrl + "<a href='" + url + i + "'>" + i + "</a> ";
}
}
}
if (this.currentPage == this.pageCount) {
//strCtrl = strCtrl + "下一页 ";
} else {
strCtrl = strCtrl + "<a href='" + url + "?page=" + this.nextPage() + "'>下页</a> ";
}
if (this.currentPage == this.pageCount) {
//strCtrl = strCtrl + "末页 ";
} else {
strCtrl = strCtrl + "<a href='" + url + "?page=" + this.getPageCount() + "'>末页</a> ";
}
strCtrl = strCtrl + "\n\r"; //换行
*/
// strCtrl = strCtrl + "当前" + this.getCurrentPage() + "/" + this.getPageCount() + "页 每页"
// + this.getPageSize() + "条 共" + this.listSize + "条";
return strCtrl;
}
public int getCurrentPage() {
return currentPage;
}
public int getNextPage() {
return nextPage;
}
public int getPageCount() {
return pageCount;
}
public int getPageSize() {
return pageSize;
}
public int getPrePage() {
return prePage;
}
public String getUrl() {
return url;
}
public void setPrePage(int prePage) {
this.prePage = prePage;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public void setNextPage(int nextPage) {
this.nextPage = nextPage;
}
public void setCurrentPage(int currentPage) {
if (currentPage > this.getPageCount()) {
this.currentPage = this.getPageCount();
} else if (currentPage < 0) {
this.currentPage = 1;
} else {
this.currentPage = currentPage;
}
}
public void setUrl(String url) {
this.url = url;
}
}
2. 测试类
import java.util.ArrayList;
public class TestPagrUtil {
public static void main(String args[]) {
ArrayList al = new ArrayList();
al.add("a");
al.add("b");
al.add("c");
al.add("d");
al.add("e");
al.add("f");
al.add("g");
al.add("h");
al.add("i");
al.add("j");
al.add("k");
al.add("l");
al.add("m");
al.add("n");
PagerUtil autopage = new PagerUtil(al,1);
autopage.setCurrentPage(5);
autopage.setUrl("/page/user/account/isprize.jsp");
ArrayList currentPageList = autopage.getPageList();
String ctrlStr = autopage.getPageCtrlString();
for(Object o: currentPageList) {
System.out.println(o.toString());
}
System.out.println(ctrlStr);
}
}