分页算法


/**
* <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;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值