Java分页代码实例

一、创建.Java文件

public final class PageControl {

 /*** 当前页号

   */

 private int currPage = 1;

  /*** 每页显示记录数

   */

 private int perPageRecord = 20;

 /*** 总记录数量

   */

 private long totalRecord = 0;

  /*** 总页数

   */

 private int totalPage = 1;

/**

   * 设置总记录条数

   *@param totalRecord 记录条数

   *@return void

   */

 public void setTotalRecord(long totalRecord) {

   if (totalRecord > 0) {

     this.totalRecord = totalRecord;

    }

  }

 

  /**

   * 设置当前页数

   *@param currPage 当前页数

   *@return void

   */

  publicvoid setCurrPage(int currPage) {

   if (currPage < 1) {

     this.currPage = 1;

    }

   else {

     this.currPage = currPage;

    }

  }

 public int getPerPageRecord() {

   return perPageRecord;

  }

 

 public void setPerPageRecord(int perPageRecord) {

   this.perPageRecord = perPageRecord;

  }

 

 public long getTotalRecord() {

   return totalRecord;

  }

 public long getTotalPage() {

   return totalPage;

  }

 public int getCurrPage() {

   return currPage;

  }

/**

   * 获得总页数

   *return int

   */

 private void countTotalPage(){

   //如果总记录数为每页记录数的整数倍

   if (totalRecord % perPageRecord == 0) {

     totalPage = (int) (totalRecord / perPageRecord);

    }

   else {

     totalPage = (int) (totalRecord / perPageRecord) + 1;

    }

 

   if (totalPage <= 0) {

     totalPage = 1;

    }

  }

public static PageControl getPgCtrl(int currPage,

                                      longtotalRows) {

   PageControl pgCtrl = new PageControl();

   //设置当前页数

   if (currPage < 1) {

     pgCtrl.setCurrPage(1);

    }

   else {

     pgCtrl.setCurrPage(currPage);

    }

   //设置总记录数

   pgCtrl.setTotalRecord(totalRows);

   //分页计算

   pgCtrl.countTotalPage();

   return pgCtrl;

  }

 

  /**

   * 获得总页数

   *return int

   */

 private void countTotalPage() {

   //如果总记录数为每页记录数的整数倍

   if (totalRecord % perPageRecord == 0) {

     totalPage = (int) (totalRecord / perPageRecord);

    }

   else {

     totalPage = (int) (totalRecord / perPageRecord) + 1;

    }

 

   if (totalPage <= 0) {

      totalPage = 1;

    }

  }

 

public String getPgCtrlHTML() {

    return getPgCtrlHTML("0");

  }

public String getPgCtrlHTML(String formno) {

//   if (this.totalRecord == 0) {

//     return "";

//   }

   StringBuffer sb = new StringBuffer();

 

   //计算总页数

   this.countTotalPage();

   sb.append("<table class='list_table_pageSplitInfo' width='98%'align='center' border='0' cellspacing='0'cellpadding='0'><tr><td>");

   sb.append("<input name='currPage' type='hidden'><inputname='currPage1' type='hidden' class='text' >");

   sb.append("<div class='list_table_pageSplitInfo'>共有&nbsp;");

   sb.append("<b>"+totalRecord+"</b> 条记录&nbsp;&nbsp;");

   sb.append("<b>" + totalPage +"</b> 页&nbsp&nbsp 当前是第&nbsp;<b>" +currPage + " </b>页&nbsp;&nbsp;");

 

 

//   //生成首页链接

//   if (currPage == 1) {

//     sb.append("最前页");

//   }

//   else {

//     sb.append("<a href='javascript:gotoPage(1)'>最前页</a>");

//   }

//   sb.append("&nbsp;&nbsp;\r\n");

 

   //生成前页链接

   if ( (currPage - 1) == 0) {

     sb.append("上页");

    }

   else {

     sb.append("<a href='javascript:gotoPage(" + (currPage - 1)+ ")'>上页</a>");

    }

   sb.append("&nbsp;\r\n");

 

   //生成后页链接

   if ( (currPage + 1) > totalPage) {

     sb.append("下页");

    }

   else {

     sb.append("<a href='javascript:gotoPage(" + (currPage + 1)+ ")'>下页</a>");

    }

   sb.append("&nbsp;&nbsp;\r\n");

 

//   //生成末页链接

//   if (currPage == totalPage) {

//     sb.append("最后页");

//   }

//   else {

//     sb.append("<a href='javascript:gotoPage(" + totalPage +")'>最后页</a>");

//   }

 

   //页面跳转下拉框

     sb.append("翻到第&nbsp;\r\n<select name=pageonChange='gotoPage(this.value)'>\r\n");

     if (totalPage == 1) {

       sb.append("    <optionvalue=1 selected>1</option>\r\n");

     }

     else {

       for (int i = 1; i <= totalPage; i++) {

         if (currPage == i) {

           sb.append("    <optionvalue=" + i + " selected>" + i +  "</option>\r\n");

         }

         else {

           sb.append("    <optionvalue=" + i + ">" + i + "</option>\r\n");

         }

       }

     }

    sb.append("</select>&nbsp;页 \r\n");

 

    sb.append("</div></td></tr></table>");

 

   sb.append("<script language='JavaScript'>\r\n");

   sb.append("function gotoPage(page)\r\n");

   sb.append("{\r\n");

   sb.append("    if(page.length> 0)\r\n");

   sb.append("    {\r\n");

   sb.append("         for(i=0;i<page.length;i++)\r\n");

   sb.append("            if((page.charAt(i)<'0' || page.charAt(i)>'9')){\r\n");

   sb.append("             alert('请输入正确的页数!')\r\n");

    sb.append("              return false;\r\n");

   sb.append("           }\r\n");

   sb.append("    }\r\n");

   sb.append("   if(page>"+totalPage+")\r\n");

   sb.append("     page="+totalPage+"\r\n");

   if(formno.equals("0")){

       sb.append("   document.forms[" + formno +"].currPage.value=page;\r\n");

       sb.append("   document.forms[" + formno + "].submit();\r\n");

   }else{

       sb.append("   document."+formno+".currPage.value=page;\r\n");

       sb.append("   document."+formno+".submit();\r\n");

    }

   sb.append("}\r\n");

   sb.append("</script>\r\n");

   return sb.toString();

  }

}

二.JSP页面代码

//取当前页数

String currPage="";

currPage=request.getParameter("currPage")==null?"1":request.getParameter("currPage");

if(currPage!=null &&currPage.equals("")){

 currPage="1";

}

SysorgBean bean = new SysorgBean();

//获得记录总数

int i_count=0;

i_count =bean.getSysorg(Code);

//查询分页

PageControl request_pgCtrl=newPageControl();

request_pgCtrl =PageControl.getPgCtrl(Integer.parseInt(currPage), i_count);

List list=null;

list  =bean.getSysorgPage(Code,(int)request_pgCtrl.getBeginRec(),

(int)request_pgCtrl.getEndRec());

 

//调用方法显示

request_pgCtrl.getPgCtrlHTML();

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值