/**
* <p>Title: 分页算法类</p>
*/
public class Pages {
private int arttotal;
private int pagetotal;
private int curPage;
private int pagesize;
private String pageInfo;
/**
* @return 返回分页结果
*/
public String getPageInfo() {
return pageInfo;
}
/**
* @return 取得文章总数
*/
public int getArttotal() {
return arttotal;
}
/**
* @return 取得当前页数
*/
public int getCurPage() {
return curPage;
}
/**
* @return 文章页数
*/
public int getPagetotal() {
return pagetotal;
}
/**
* @param arttotal 要实现分页的文章总数
* @param curPage 当前页数
* @param pagesize 页面大小
* @param link 每一个页面的链接
*/
public Pages(int arttotal,int curPage,int pagesize,String link) {
this.arttotal = arttotal;
this.curPage = curPage;
this.pagesize = pagesize;
doPages();
pageInfo(link);
}
/**
* 处理分页的基本数据
*/
private void doPages(){
pagetotal = arttotal%pagesize==0?arttotal/pagesize:arttotal/pagesize+1;
if(pagetotal==0){
pagetotal=1;
}
if(curPage<1){
curPage=1;
}else if(curPage>pagetotal){
curPage=pagetotal;
}
}
/** 根据处理的信息,将得到的信息以html的形式体现再页面上。
* @param link 到每一个页面链接的相同部分
*/
private void pageInfo(String link){
StringBuffer sb = new StringBuffer();
if(pagetotal>1){
sb.append("<table class='tab' width='100%' height='100%' cellSpacing=0 cellPadding=0>");
sb.append("<tr><td> 共<b>");
sb.append(pagetotal);
sb.append("</b>页 <b>");
sb.append(arttotal);
sb.append("</b>个记录 当前第<b>");
sb.append(curPage);
sb.append("</b>页 <a href=");
sb.append(link);
sb.append("&curPage=1>");
sb.append("<img src='webapp/images/first.gif' border=0 alt=首页></a>");
sb.append("<a href=");
sb.append(link);
sb.append("&curPage=");
sb.append(curPage>=2?curPage-1:curPage);
sb.append("><img src='webapp/images/previous.gif' border=0 alt=上一页></a> [");
int pagebegin = 1;
int pageend = pagetotal;
if(curPage <= 5 && pagetotal - curPage > 5){
pageend = pagetotal < 10 ? pagetotal : 10;
}else
if(curPage > 5 && pagetotal - curPage > 5) {
pagebegin = curPage - 4;
pageend = curPage + 5;
} else{
if(curPage > 5 && pagetotal - curPage <= 5)
pagebegin = pagetotal < 10 ? 1 : pagetotal - 9;
}
for(int i = pagebegin; i <= pageend; i++){
if(i == curPage){
sb.append("<b>");
sb.append(i);
sb.append("</b> ");
} else{
sb.append(" <a href='");
sb.append(link);
sb.append("&curPage=");
sb.append(i);
sb.append("'>");
sb.append(i);
sb.append("</a> ");
}
}
sb.append("] <a href=");
sb.append(link);
sb.append("&curPage=");
sb.append(curPage<=pagetotal-1?curPage+1:pagetotal);
sb.append(">");
sb.append("<img src='webapp/images/next.gif' border=0 alt=下一页></a>");
sb.append("<a href=");
sb.append(link);
sb.append("&curPage=");
sb.append(pagetotal);
sb.append("><img src='webapp/images/last.gif' border=0 alt=末页></a>");
sb.append("</td></tr>");
sb.append("</table>");
}else{
sb.append(" 共<b>");
sb.append(pagetotal);
sb.append("</b>页 <b>");
sb.append(arttotal);
sb.append("</b>个记录 ");
}
pageInfo = sb.toString();
sb = null;
}
}
分页算法
最新推荐文章于 2024-11-04 13:51:18 发布