一、创建.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'>共有 ");
sb.append("<b>"+totalRecord+"</b> 条记录 ");
sb.append("<b>" + totalPage +"</b> 页   当前是第 <b>" +currPage + " </b>页 ");
// //生成首页链接
// if (currPage == 1) {
// sb.append("最前页");
// }
// else {
// sb.append("<a href='javascript:gotoPage(1)'>最前页</a>");
// }
// sb.append(" \r\n");
//生成前页链接
if ( (currPage - 1) == 0) {
sb.append("上页");
}
else {
sb.append("<a href='javascript:gotoPage(" + (currPage - 1)+ ")'>上页</a>");
}
sb.append(" \r\n");
//生成后页链接
if ( (currPage + 1) > totalPage) {
sb.append("下页");
}
else {
sb.append("<a href='javascript:gotoPage(" + (currPage + 1)+ ")'>下页</a>");
}
sb.append(" \r\n");
// //生成末页链接
// if (currPage == totalPage) {
// sb.append("最后页");
// }
// else {
// sb.append("<a href='javascript:gotoPage(" + totalPage +")'>最后页</a>");
// }
//页面跳转下拉框
sb.append("翻到第 \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> 页 \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();