📄 pageinfo.java
字号:
package com.leo.util;
/*
* Copyright (C) 2007 SuperLeo
*
* 产品名称:
* 分页
*
* 修改履历:
* version 2007年/6月/8日 更新者 内容
* 1.0 2007/06/8 夏 新建
*/
import static com.leo.util.PageSize.PAGESIZE;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
*
* 分页用工具类
*
* @author Ziyang.Xia
*/
public class PageInfo {
// 总共符合条件的记录数目
private int recordCount;
// 当前页数
private int page;
// 每页大小
private int pageSize = PAGESIZE;
// 页面传递的URL
private String url;
// 返回到页面上的html
private StringBuffer html;
// 页面传递的参数
private Map paramMap = new HashMap();
/**
* 构造器1
*
* @param page
* :起始页
* @param url
* :换页后的URL地址
*/
public PageInfo(int page, String url) {
this.page = page;
this.url = url;
}
/**
* 构造器2
*
* @param page :
* 起始页
* @param url
* :换页后的URL地址
* @param paramMap
* :URL后的参数
*/
public PageInfo(int page, String url, Map paramMap) {
this.page = page;
this.url = url;
this.paramMap = paramMap;
}
/**
* 构造器3
*
* @param page :
* 起始页
* @param pagesize :
* 每页的记录数
* @param url
* :换页后的URL地址
*/
public PageInfo(int page, int pagesize, String url) {
this.page = page;
this.pageSize = pagesize;
this.url = url;
}
/**
* 构造器4
*
* @param page :
* 起始页
* @param pagesize :
* 每页的记录数
* @param url
* :换页后的URL地址
* @param paramMap
* :URL后的参数
*/
public PageInfo(int page, int pagesize, String url, Map paramMap) {
this.page = page;
this.pageSize = pagesize;
this.url = url;
this.paramMap = paramMap;
}
/**
* <p>
* 获取总记录数
* </p>
*
* @return String
*/
public int getRecordCount() {
return recordCount;
}
/**
* <p>
* 设定总记录数
* </p>
*
* @param recordCount
*/
public void setRecordCount(int recordCount) {
this.recordCount = recordCount;
}
/**
* <p>
* 获取起始页
* </p>
*
* @return String
*/
public int getPage() {
return page;
}
/**
* <p>
* 获取下一页页码
* </p>
*
* @return String
*/
public int getNextPage() {
return page + 1;
}
/**
* <p>
* 获取前一页页码
* </p>
*
* @return String
*/
public int getPrePage() {
return page - 1;
}
/**
* <p>
* 获取总记录数
* </p>
*
* @return String
*/
public int getPageSize() {
return pageSize;
}
/**
* <p>
* 设定当前页
* </p>
*
* @param page
*/
public void setPage(int page) {
this.page = page;
}
/**
* <p>
* 设定当前页
* </p>
*
* @param pageSize
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* <p>
* 得到当前页
* </p>
*
*/
public int getPageCount() {
return (int) Math.ceil((double) recordCount / pageSize);
}
/**
* 是否有前一页,如果当前页数=1则没有
*
* @return 是否有前一页
*/
public boolean isHasPrevPage() {
if (page > 1) {
return true;
} else {
return false;
}
}
/**
* 是否有后一页,如果当前页数=总页数则没有
*
* @return 是否有后一页
*/
public boolean isHasNextPage() {
if (page < getPageCount()) {
return true;
} else {
return false;
}
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
/**
*
*
* @return
*/
private String ceateParamString() {
String paramStr = "";
Iterator iterator = paramMap.keySet().iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
paramStr = paramStr + "&" + key + "=" + paramMap.get(key);
}
return paramStr;
}
/**
*
* @return
*/
public StringBuffer getHtml() {
String paramString = new String();
paramString = ceateParamString();
html = new StringBuffer("");
boolean flag = true;
if (this.page > 1) {
html.append("共 " + this.getRecordCount() + " 条记录 ");
this.html.append("[ ");
this.html.append("<a href='" + this.url + "?pageNum=1"
+ paramString + "'>首页</a> ");
this.html.append("<a href='" + this.url + "?pageNum="
+ this.getPrePage() + paramString + "'>上一页</a> ");
if (page >= getPageCount()) {
this.html.append("] ");
}
} else {
flag = false;
}
if (page < getPageCount()) {
if (flag == false) {
this.html.append("[ ");
flag = true;
}
this.html.append("<a href='" + this.url + "?pageNum="
+ this.getNextPage() + paramString + "'>下一页</a> ");
this.html.append("<a href='" + this.url + "?pageNum="
+ this.getPageCount() + paramString + "'>末页</a>");
this.html.append(" ] ");
}
if (page > 1 || page < getPageCount() || this.getRecordCount() > 0) {
this.html.append("页数: ");
html.append("<select onChange='turnOverPage(this.value)'>\r\n");
for (int i = 1; i <= getPageCount(); i++) {
if (i == page) {
html.append(" <option value='" + i + "' selected>" + i
+ " / " + this.getPageCount()
+ "</option>\r\n");
} else {
html.append(" <option value='" + i + "'>" + i
+ " / " + this.getPageCount()
+ "</option>\r\n");
}
}
html.append("</select>\r\n");
// 生成提交表单的JS
html.append("<script language='javascript'>\r\n");
html.append(" function turnOverPage(no){\r\n");
html.append(" window.location.href='" + this.url
+ "?pageNum='+no+'" + paramString + "';\r\n");
html.append(" }\r\n");
html.append("</script>\r\n");
} else {
html.append("暂无记录.");
}
return html;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -