📄 page.java
字号:
package net.supersoft.common.util;
import java.util.List;
/**
*
* <p>
* 类名:Page
* </p>
*
* <p>
* 描述:通用分页类,用来封装后台数据库返回对象信息,并在前台显示分页信息
* </p>
*
* <p>
*作者:甘桂敏 goodsuperstar#yahoo.com.cn QQ:3021337
* </p>
*
* @author GanGuimin
* @version 2.0
* @since JDK1.4.2
*/
public class Page {
/**
* 当前是第几页
*/
private int curPage; //当前是第几页
/**
* 一共有多少页
*/
private int maxPage; //一共有多少页
/**
* 一共有多少条记录(行)
*/
private int maxRowCount; //一共有多少行
/**
* 每页显示多少行
*/
private int rowsPerPage; //每页显示多少行
/**
* 当前页面要显示的数据列表(包含数据库返回对象的列表)
*/
private List list; //当前页面显示的数据
/**
* 提交的表单的名称
*/
private String formName = "pageForm";//提交的表单名称
/**
* 显示分页的前台页面路径名称
*/
private String target = "";
/**
* 默认每页显示记录数
*/
private static int ROWS_PER_PAGE = 15;
/**
* 分页信息初始化,每页显示记录数使用默认值
*
*/
public Page() {
this.curPage = 1;
this.maxPage = 1;
this.maxRowCount = 0;
this.rowsPerPage = ROWS_PER_PAGE;
}
/**
* <p>
* 设置当前分页页面要显示的数据对象列表
* </p>
*
* <p>
* 该对象可以是一个实现了 List 接口的任意列表
* </p>
*
* @param list -
* 实现了 List 接口的任意列表
*/
public void setList(List list) {
this.list = list;
}
/**
* 获取要在当前分页页面显示的数据对象列表
*
* @return 要显示在前台页面的数据对象列表
*/
public List getList() {
return this.list;
}
/**
* 设置记录的总行数(即所有满足条件的纪录总数)
*
* @param maxRowCount -
* 记录的总行数
*/
public void setMaxRowCount(int maxRowCount) {
this.maxRowCount = maxRowCount;
}
/**
* 获取记录的最大行数
*
* @return - 满足条件的所有记录条数
*/
public int getMaxRowCount() {
return this.maxRowCount;
}
/**
* 设置当前页数(即要显示在前台的当前页数)
*
* @param curPage -
* 当前页数
*/
public void setCurPage(int curPage) {
this.curPage = curPage;
}
/**
* 返回在前台显示的当前页数
*
* @return - 当前页数
*/
public int getCurPage() {
return this.curPage;
}
/**
* <p>
* 设置每页显示的记录条数
* </p>
* <p>
* 注意:如果每页显示的记录条数小于等于 0 ,则每页显示的记录条数将置为默认值
* </p>
*
* @param rows -
* 每页显示的记录条数
*/
public void setRowsPerPage(int rows) {
if (rows > 0) {
this.rowsPerPage = rows;
} else {
this.rowsPerPage = ROWS_PER_PAGE;
}
}
/**
* 设置页面提交表单的名称,默认为 pageForm,在一般情况下,使用默认值就能正常使用
*
* @param formName -
* 提交表单的名称
*/
public void setFormName(String formName) {
this.formName = formName;
}
/**
* 设置显示分页的前台页面路径名称
*
* @param target -
* 分页页面路径名称
*/
public void setTarget(String target) {
this.target = target;
}
/**
* 获取每页显示的记录条数
*
* @return - 每页显示的记录条数
*/
public int getRowsPerPage() {
return this.rowsPerPage;
}
/**
* 根据记录总数和每页显示的记录条数,计算总共有多少页
*
*/
public void setMaxPage() {
if (this.maxRowCount % this.rowsPerPage == 0) {
this.maxPage = this.maxRowCount / this.rowsPerPage;
} else {
this.maxPage = this.maxRowCount / this.rowsPerPage + 1;
}
}
/**
* 获取根据记录总数和每页显示的记录数计算得出的总页数
*
* @return - 记录总页数
*/
public int getMaxPage() {
return this.maxPage;
}
/**
* 获取前台分页页面提交表单的名称
*
* @return - 提交表单的名称
*/
public String getFormName() {
return this.formName;
}
/**
* 获取前台分页页面的路径名称
*
* @return - 前台分页页面的路径名称
*/
public String getTarget() {
return this.target;
}
/**
* 获取默认每页显示的记录条数
*
* @return - 默认每页显示的记录条数
*/
public int getDefaultRowsPerPage() {
return ROWS_PER_PAGE;
}
/**
* 根据前台分页页面名称和相关分页信息,获取前台页面提交表单和页面信息的 HTML 代码
*
* @param aUrl -
* 前台分页页面的路径名称
* @return - 前台页面提交表单和页面信息的 HTML 代码
*/
public String getPageStr(String aUrl) {
String strFirstPage = "首页";
String strLastPage = "末页";
String strNextPage = "下一页";
String strPrevPage = "上一页";
String strCurrentPage = "页次";
String strGoto = "转至:";
StringBuffer strPages = new StringBuffer();
//跳转脚本
strPages.append("<script language='JavaScript'>\r\n");
strPages.append("<!--\r\n");
strPages.append("function Jumping(){ \r\n\t");
strPages.append("document." + formName + ".submit();\r\n\t");
strPages.append("return ;\r\n");
strPages.append("}\r\n");
strPages.append("function gotoPage(pagenum){ \r\n\t");
strPages.append("document." + formName
+ ".pageSize.value = pagenum;\r\n\t");
strPages.append("document." + formName + ".submit();\r\n\t");
strPages.append("return ;\r\n");
strPages.append("}\r\n");
strPages.append("-->\r\n");
strPages.append("\r\n</script>\r\n");
strPages.append("<table border=0 align=center>\r\n");
strPages.append("<form name=" + formName + " action=" + aUrl
+ " method=post>\r\n");
strPages.append("<tr>\r\n\t<td>\r\n\t\t");
strPages.append("<b>共 <font color=#930909>" + this.getMaxRowCount()
+ "</font> 条记录</b> \r\n\t");
if (getMaxPage() == 1 || getMaxRowCount() == 0) {
strPages
.append("\t<font face=webdings color=#930909>9</font><font color=#930909><b>"
+ strFirstPage + "</b></font>\r\n\t");
strPages
.append("\t<font face=webdings color=#930909>7</font><font color=#930909><b>"
+ strPrevPage + "</b></font>\r\n\t");
strPages
.append("\t<font color=#930909><b>"
+ strNextPage
+ "</b></font><font face=webdings color=#930909>8</font>\r\n\t");
strPages
.append("\t<font color=#930909><b>"
+ strLastPage
+ "</b></font><font face=webdings color=#930909>:</font>\r\n\t");
} else if (getMaxPage() > 1 && getCurPage() == 1) {
strPages
.append("\t<font face=webdings color=#930909>9</font><font color=#930909><b>"
+ strFirstPage + "</b></font>\r\n\t");
strPages
.append("\t<font face=webdings color=#930909>7</font><font color=#930909><b>"
+ strPrevPage + "</b></font>\r\n\t");
strPages.append("\t<a href=\"javascript:gotoPage("
+ (getCurPage() + 1) + ")\"><font color=black><b>"
+ strNextPage
+ "</b></font></a><font face=webdings>8</font>\r\n\t");
strPages.append("\t<a href=\"javascript:gotoPage(" + getMaxPage()
+ ")\"><font color=black><b>" + strLastPage
+ "</b></font></a><font face=webdings>:</font>\r\n\t");
} else if (getMaxPage() > 1 && getCurPage() < getMaxPage()) {
strPages
.append("\t<font face=webdings>9</font><a href=\"javascript:gotoPage(1)\"><font color=black><b>"
+ strFirstPage + "</b></font></a>\r\n\t");
strPages
.append("\t<font face=webdings>7</font><a href=\"javascript:gotoPage("
+ (getCurPage() - 1)
+ ")\"><font color=black><b>"
+ strPrevPage + "</b></font></a>\r\n\t");
strPages.append("\t<a href=\"javascript:gotoPage("
+ (getCurPage() + 1) + ")\"><font color=black><b>"
+ strNextPage
+ "</b></font></a><font face=webdings>8</font>\r\n\t");
strPages.append("\t<a href=\"javascript:gotoPage(" + getMaxPage()
+ ")\"><font color=black><b>" + strLastPage
+ "</b></font></a><font face=webdings>:</font>\r\n\t");
} else if (getMaxPage() > 1 && getCurPage() == getMaxPage()) {
strPages
.append("\t<font face=webdings>9</font><a href=\"javascript:gotoPage(1)\"><font color=black><b>"
+ strFirstPage + "</b></font></a>\r\n\t");
strPages
.append("\t<font face=webdings>7</font><a href=\"javascript:gotoPage("
+ (getCurPage() - 1)
+ ")\"><font color=black><b>"
+ strPrevPage + "</b></font></a>\r\n\t");
strPages
.append("\t<font color=#930909><b>"
+ strNextPage
+ "</b></font><font face=webdings color=#930909>8</font>\r\n\t");
strPages
.append("\t<font color=#930909><b>"
+ strLastPage
+ "</b></font><font face=webdings color=#930909>:</font>\r\n\t");
}
// strPages.append("\t<font color=black><b>转至:</b></font>\r\n\t\t<input
// type='text' name='page' size=4 maxlength=4 value=" +
// getCurPage() +
// " onKeyDown = \"javaScript:return dFilter(event.keyCode,this);\"" +
// ">" +
// "\r\n\t\t<input type='submit' value='Go' name='cndok'>\r\n\t");
//----------------------------------------------------------------------]
//显示 n 条记录(行)/页
//strPages.append("\t <b><font color=#930909>" + getRowsPerPage()
// +
//"</font> 条记录(行)/页</b>\r\n\t");
//----------------------------------------------------------------------
strPages
.append("\t<font color=black><b>"
+ strGoto
+ "</b></font>\r\n\t\t<select name='pageSize' onchange='Jumping()'>");
for (int i = 1; i <= this.getMaxPage(); i++) {
if (i == this.getCurPage()) {
strPages.append("\r\n\t\t\t<option selected value=" + i + ">第 "
+ i + " 页</option>");
} else {
strPages.append("\r\n\t\t\t<option value=" + i + ">第 " + i
+ " 页</option>");
}
}
strPages.append("\r\n\t\t</select>\r\n\t");
strPages
.append("\t<font color=black><b>"
+ strCurrentPage
+ ":</b></font><font color=#930909><b>"
+ getCurPage()
+ "</b></font>\r\n\t\t<font color=black><b>/</b></font>\r\n\t\t<font color=#930909><b>"
+ getMaxPage()
+ "</b></font><font color=black><b> 页 </b></font>");
strPages.append("\r\n\t<td>\r\n<tr>\r\n</form>\r\n</table>");
return strPages.toString();
}
/**
* <p>
* 根据Page 类的 target 属性和分页相关信息,获取前台页面提交表单和页面信息的 HTML 代码
* </p>
* <p>
* 注意:使用该方法之前,必须设置 Page 类的 target属性
* </p>
*
* @return - 前台页面提交表单和页面信息的 HTML 代码
*/
public String getPageStr() {
return this.getPageStr(target);
}
/**
* 打印 Page 对象的当前信息
*/
public String toString() {
return "当前是第 " + curPage + " 页;共有 " + maxPage + " 页,共 " + maxRowCount
+ " 条记录(行);每页 " + rowsPerPage + " 条记录(行)";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -