action公共包有如下类:
package com.csdn.action.common;
public class DividePage {
public static String doDividePage(int maxResultsOnePage,long totalRecord,int currentPage,String url){
String header = "<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td width='50%' align='left'>";
String footer = "</td></tr></table>";
StringBuffer tmp = new StringBuffer();
tmp.append("<a href='" + url + "0'>首页</a> ");
if((int)(totalRecord/maxResultsOnePage)==1)
return new String("<table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td width='50%' align='left'>首页 上一页 下一页 末页</td><td align='right'>1 </td></tr></table>");
if(currentPage==0)
tmp.append("<font class='likelink'>上一页</font> ");
else
tmp.append("<a href='" + url + ( currentPage - 1 ) + "'>上一页</a> ");
if(((int)(totalRecord/maxResultsOnePage))==currentPage)
tmp.append("<font class='likelink'>下一页</font> ");
else
tmp.append("<a href='" + url + ( currentPage + 1 ) + "'>下一页</a> ");
tmp.append("<a href='" + url + (int)(totalRecord/maxResultsOnePage) + "'>末页</a>");
tmp.append("</td><td align='right'>");
int startPage = ((currentPage - 3) >= 0)?(currentPage - 3):0;
int endPage = ((currentPage + 3) <= ((int)(totalRecord/maxResultsOnePage)))?(currentPage + 3):(int)(totalRecord/maxResultsOnePage);
if(startPage > 0){
tmp.append("<a href='"+ url + "0' title='第1页'><---</a> ");
}
for(int i = startPage;i < endPage + 1; i ++){
if(i == currentPage)
tmp.append("<font color='red'>" + (i+1) + "</font> ");
else
tmp.append("<a href='"+ url + "" + i + "'>" + (i+1) + "</a> ");
}
if(endPage < (int)(totalRecord/maxResultsOnePage)){
tmp.append("<a href='" + url + (int)(totalRecord/maxResultsOnePage) + "' title='第" + ((int)(totalRecord/maxResultsOnePage)+1) + "页'>--></a>");
}
return ( header + tmp + footer);
}
}
以上为分页打包函数
在webwork action中如此调用
假设该action有一String变量为dividePageView,则
this.dividePageView = DividePage.doDividePage(maxResults, totalRecord.longValue(), curPage, new String("end.action?curPage="));
其中maxResults为一页最大记录, totalRecord.longValue()为该action前面部分从数据库得到的数据记录总数,curPage为当前页,在action里可以从url得到,new String("end.action?curPage=")为连接url
然后在jsp中如此<ww:property value="dividePageView" escape="false" />
加上escape属性也禁止其自动转义,这样后在该标签处就会出现一个分页的表格,是不是很方便呢?
:)