webwork中打包分页函数

来源:互联网 发布:淘宝人群画像收费吗 编辑:程序博客网 时间:2024/06/06 18:07

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>&nbsp;&nbsp;");
  
  if((int)(totalRecord/maxResultsOnePage)==1)
   return new String("<table width='100%'  border='0' cellspacing='0' cellpadding='0'><tr><td width='50%' align='left'>首页&nbsp;&nbsp;上一页&nbsp;&nbsp;下一页&nbsp;&nbsp;末页</td><td align='right'>1&nbsp;&nbsp;</td></tr></table>");
  
  if(currentPage==0)
   tmp.append("<font class='likelink'>上一页</font>&nbsp;&nbsp;");
  else
   tmp.append("<a href='" + url + ( currentPage - 1 ) + "'>上一页</a>&nbsp;&nbsp;");
  
  if(((int)(totalRecord/maxResultsOnePage))==currentPage)
   tmp.append("<font class='likelink'>下一页</font>&nbsp;&nbsp;");
  else
   tmp.append("<a href='" + url + ( currentPage + 1 ) + "'>下一页</a>&nbsp;&nbsp;");
  
  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页'>&lt;---</a>&nbsp;&nbsp;");
  }
  
  for(int i = startPage;i < endPage + 1; i ++){
   if(i == currentPage)
    tmp.append("<font color='red'>" + (i+1) + "</font>&nbsp;&nbsp;");
   else
    tmp.append("<a href='"+ url + "" + i + "'>" + (i+1) + "</a>&nbsp;&nbsp;");
  }
  
  if(endPage < (int)(totalRecord/maxResultsOnePage)){
   tmp.append("<a href='" + url + (int)(totalRecord/maxResultsOnePage) + "' title='第" + ((int)(totalRecord/maxResultsOnePage)+1) + "页'>--&gt;</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属性也禁止其自动转义,这样后在该标签处就会出现一个分页的表格,是不是很方便呢?
:)

原创粉丝点击