分页组件
,字符串连接一般用StringBuffer比较好,我都是用的String的+号连接符
public class PageBean {
private int total;
private int count;
private int begin;
private int end;
private String linkString=null;
private int thispage;
private String link=null;
private String[] parameters=null;
public void makeParameters(){
int yushu=total%count;
int pagecount;
if(yushu==0)
pagecount=total/count;
else
pagecount=(total/count)+1;
if(thispage<=1){
thispage=1;
}else if(thispage>=pagecount){
thispage=pagecount;
}
String firstlink="<a href="+link+"?thispage=1";
String lastlink="<a href="+link+"?thispage="+pagecount;
String prevlink="<a href="+link+"?thispage="+(thispage-1);
String nextlink="<a href="+link+"?thispage="+(thispage+1);
if(parameters!=null){
for(String parameter:parameters){
firstlink+="&"+parameter;
lastlink+="&"+parameter;
prevlink+="&"+parameter;
nextlink+="&"+parameter;
}
}
firstlink+=">第一页</a>";
lastlink+=">末一页</a>";
prevlink+=">上一页</a>";
nextlink+=">下一页</a>";
linkString=firstlink+"//"+prevlink+"//第"+thispage+"页/共"+pagecount+"页//"+nextlink+"//"+lastlink;
begin=(thispage-1)*count+1;
if(begin<=1)
begin=1;
end=begin+count;
//System.out.println("total:"+total+" begin:"+begin+"----end:"+end);
}
public void setCount(int count) {
this.count = count;
}
public void setTotal(int total) {
this.total = total;
}
public int getBegin() {
return begin;
}
public int getEnd() {
return end;
}
public String getLinkstring() {
return linkString;
}
public void setThispage(int thispage) {
this.thispage = thispage;
}
public void setLink(String link) {
this.link = link;
}
public void setParameters(String[] parameters) {
this.parameters = parameters;
}
public static void main(String agers[]){
PageBean page=new PageBean();
page.setLink("view.do");
page.setThispage(1);
page.setCount(20);
page.setTotal(100);
String[] parameters={"phone=1234","linkid=111"};
page.setParameters(parameters);
page.makeParameters();
String pagelink=page.getLinkstring();
System.out.println(pagelink);
System.out.println(page.getBegin());
System.out.println(page.getEnd());
}
}
[该贴被brucehu于2008-01-18 17:36修改过]
InPage.java
public interface InPage {
//当前页
public void setCurrentPage(int currentPage);
//每页条目数
public void setEveryItems(int everyItems);
//总记录数
public void setAllItems(int allItems);
// 总页数
public void setAllPage(int allpage);
//当前页
public int getCurrentPage();
//每页条目数
public int getEveryItems();
//总记录数
public int getAllItems();
//总页数
public int getAllPage();
//是否有下一页
public boolean hasNextPage();
//是否有上一页
public boolean hasPreviousPage();
//是否有尾页
public boolean hasLastPage();
//是否有首页
public boolean hasFirstPage();
//记录集
public Object getDataValues();
//记录集
public void setDataValues(Object dataValues);
//分页条
public String showPageBar(String url);
}
==================================================
PageBean.java
public class PageBean implements InPage{
//记录集
private Object dataValues;
//当前页
private int currentPage;
//每页记录
private int everyItems;
//总记录
private int allItems;
//总页数
private int allPage;
/**是否有最后一页*/
public boolean hasLastPage() {
return currentPage<getAllPage();
}
/**是否有下一页*/
public boolean hasNextPage() {
return currentPage<getAllPage();
}
/**是否有首页*/
public boolean hasFirstPage() {
return currentPage>1;
}
/**是否有上一页*/
public boolean hasPreviousPage() {
return currentPage>1;
}
public void setAllItems(int allItems) {
this.allItems=allItems;
}
public void setCurrentPage(int currentPage) {
this.currentPage=currentPage;
}
public void setEveryItems(int everyItems) {
this.everyItems=everyItems;
}
public int getAllItems() {
return allItems;
}
public int getCurrentPage() {
return currentPage;
}
public int getEveryItems() {
return everyItems;
}
public int getAllPage() {
return this.allItems%this.everyItems==0?this.allItems/this.everyItems:this.allItems/this.everyItems+1;
}
public void setAllPage(int allpage) {
this.allPage=this.allItems%this.everyItems==0?this.allItems/this.everyItems:this.allItems/this.everyItems+1;
}
public Object getDataValues() {
return dataValues;
}
public void setDataValues(Object dataValues) {
this.dataValues = dataValues;
}
public String showPageBar(String url) {
StringBuffer sb = new StringBuffer();
String strFirstPage = "首页";
String strPrevPage = "上一页";
String strNextPage = "下一页";
String strLastPage = "末页";
sb.append("<form name=myform action=" + url + " method=POST> ");
sb.append("当前第"+currentPage+"/"+getAllPage()+"页 ");
if(hasFirstPage()){
sb.append("<a href="+url+"¤tPage=1&everyItems="+everyItems+">"+strFirstPage+"</a> ");
}else{
sb.append(strFirstPage+" ");
}
if(hasPreviousPage()){
sb.append("<a href="+url+"¤tPage="+(currentPage-1)+"&everyItems="+everyItems+">"+strPrevPage+"</a> ");
}else{
sb.append(strPrevPage+" ");
}
if(hasNextPage()){
sb.append("<a href="+url+"¤tPage="+(currentPage+1)+"&everyItems="+everyItems+">"+strNextPage+"</a> ");
}else{
sb.append(strNextPage+" ");
}
if(hasLastPage()){
sb.append("<a href="+url+"¤tPage="+getAllPage()+"&everyItems="+everyItems+">"+strLastPage+"</a> ");
}else{
sb.append(strLastPage+" ");
}
sb.append("转至第<input type=text name=currentPage size=4>页<input type=hidden name=everyItems value="+everyItems+">");
sb.append("<input class=button type=submit value=Go></form>");
return sb.toString();
}
}
======================
放到Request里面
页面写代码获取InPage,InPage.getDataValues()是记录集
InPage.showPageBar()是导航栏,根据需要自己改
[该贴被sgysgy于2008-01-23 10:18修改过]
猜你喜欢