package com.gc.tool;
import java.util.ArrayList;
import java.util.List;
public class MyPagination {
private int recordCount = 0;
private int pagesize = 0;
private int maxPage = 0;
private int page = 0;
public int getMaxPage(){
int maxPage = (recordCount%pagesize == 0)?(recordCount/pagesize):(recordCount/pagesize+1);
return maxPage;
}
public int getPage(String str){
if(str == null){
str = "0";
}
int page = Integer.parseInt(str);
if(page<1){
page = 1;
}else{
if(page > maxPage){
page = maxPage;
}
}
return page;
}
@SuppressWarnings("unchecked")
public List getInitPage(List list, String page,int pageSize){
this.recordCount = list.size();
this.pagesize = pageSize;
this.maxPage = getMaxPage();
this.page = getPage(page);
List<Object> newList = new ArrayList<Object>();
recordCount = list.size();
try{
for(int i = (this.page-1)*pagesize; i<=this.page*pagesize-1;i++){
if(i>=recordCount){break;}
newList.add(list.get(i));
}
}catch(Exception e){
e.printStackTrace();
}
return newList;
}
public String printCtrl(){
String strHtml = "<table width='370' border = '0' cellpadding='0'><tr><td height = '24' align = 'right'> 当前页数 :["+ page + "/" + maxPage + "]  ";
try{
if(page > 1){
strHtml = strHtml + "<a href= '/mySSH/find.do?page=1'>第一頁</a>";
strHtml = strHtml + " <a href='/mySSH/find.do?page="+(page-1)+"'>上一頁</a>";
}
if(page < maxPage){
strHtml = strHtml + " <a href='/mySSH/find.do?page="+(page+1)+"'>下一頁</a> <a href='?page="+maxPage+"'>最後一頁 </a>";
}
strHtml = strHtml + "</td><tr></table>";
}catch(Exception e){
e.printStackTrace();
}
return strHtml;
}
}
在JSP中调用上面的分页类就可以了!
关键是思想就是将大List转化成效List,然后输出分页的标签!