package util;
/**
* 分页类
* @author teachershi
*
*/
public class Pager {
private String url;
private int size;
private int rows;
private int cpage;
private int pagers;
private int nums;
/**
* 构造方法
* @param url 链接
* @param size 每页显示数量
* @param cpage 当前页数
* @param rows 总数据行数
*/
private Pager(String url,int size,int rows,int cpage,int nums) {
this.url = url.indexOf("?")>-1?url+"&offset.pager=":url+"?offset.pager=";
this.size = size;
this.rows = rows;
this.pagers = rows%size>0?rows/size+1:rows/size;
this.cpage = cpage<1?1:cpage>this.pagers?this.pagers:cpage;
this.nums = nums<5?5:nums;
}
/**
* 获得分页字符串
* @param url 链接
* @param size 每页显示数量
* @param cpage 当前页数
* @param rows 总数据行数
* @return 分页字符串
*/
public static String getPagerStr(String url,int size,int rows,int cpage,int nums) {
StringBuffer page=new StringBuffer();
Pager pager=new Pager(url,size,rows,cpage,nums);
page.append("<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr>");
page.append("<td><div class=\"pageclass1\"> <a href=\""+pager.url+1+"\">首页</a> </div></td>");
page.append("<td><div class=\"pageclass1\"><a href=\""+pager.url+pager.getPrivior()+"\">上一页</a> </div></td>");
for(int i= pager.getStart(); i<pager.getEnd()+1; i++) {
if(i==pager.cpage)
page.append("<td><div class=\"pageclass2\">"+i+" </div></td>");
else
page.append("<td><div class=\"pageclass1\"><a href=\""+pager.url+i+"\">"+i+"</a> </div></td>");
}
page.append("<td><div class=\"pageclass1\"><a href=\""+pager.url+pager.getNext()+"\">下一页</a> </div></td>");
page.append("<td><div class=\"pageclass1\"><a href=\""+pager.url+pager.pagers+"\">末页</a> </div></td>");
page.append("<td><select onchange=\"window.location='"+pager.url+"'+this.value;\">");
for(int i=1; i<pager.pagers+1; i++) {
if(i==cpage)
page.append("<option selected=selected value=\""+i+"\">"+i+"</option> ");
else
page.append("<option value=\""+i+"\">"+i+"</option> ");
}
page.append("</select> </td>");
page.append("<td><div class=\"pageclass2\">当前页数/总页数:"+pager.cpage+"/"+pager.pagers+" </div></td>");
page.append("<td><div class=\"pageclass2\">每页"+pager.size+"条数据 共"+pager.rows+"条数据</div></td>");
page.append("</tr></table>");
return page.toString();
}
/**
* 本页开始数字
* @return 数字
*/
private int getStart() {
return this.cpage%this.nums>0?this.cpage/this.nums*this.nums+1:(this.cpage-1)/this.nums*this.nums+1;
}
/**
* 本页结束数字
* @return 数字
*/
private int getEnd() {
int temp = (this.cpage/this.nums+1)*this.nums;
return this.cpage%this.nums>0?temp>this.pagers?this.pagers:temp:this.cpage;
}
/**
* 上一页
* @return 上一页页码
*/
private int getPrivior() {
return cpage>1?cpage-1:1;
}
/**
* 下一页
* @return 下一页页码
*/
private int getNext() {
return cpage<this.pagers?cpage+1:this.pagers;
}
public static void main(String[] args) {
System.out.println(Pager.getPagerStr("/aaa/aaa/",10,303,1,10));
}
}
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/69047.html