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;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
SSH_Mail.rar (82个子文件)
SSH_Mail
.project 1010B
test
com
leo
dao
BaseServiceTest.java 1KB
UserServiceTest.java 2KB
util
JavaMail.java 1KB
.settings
org.eclipse.core.resources.prefs 88B
.mymetadata 297B
db
ssh_mail.sql 5KB
WebRoot
login.jsp 1002B
WEB-INF
dwr.xml 394B
web.xml 3KB
servletContext.xml 1KB
applicationContext.xml 5KB
classes
log4j.properties 300B
struts.properties 122B
leo.conf 374B
com
leo
dao
UserServiceTest.class 2KB
BaseServiceTest.class 2KB
constants
LoginStauts.class 968B
controller
BaseController.class 697B
UserController-userAction-validation.xml 744B
UserController.class 3KB
po
PrimaryEntity.class 698B
User.class 900B
Article.class 957B
Log.class 1KB
CommonEntity.class 666B
Mail.class 1KB
service
IGenericService.class 1KB
IMailService.class 269B
ILogService.class 266B
IUserService.class 269B
impl
LogServiceImpl.class 683B
MailServiceImpl.class 691B
GenericServiceImpl.class 6KB
ArticleServiceImpl.class 3KB
UserServiceImpl.class 691B
IArticleService.class 353B
util
PageSize.class 327B
JavaMail.class 2KB
RegEx.class 2KB
FilerSpecial.class 2KB
JavaMailSenderUtil.class 2KB
JspSQL.class 1KB
PageInfo.class 5KB
struts_xml
user.xml 1KB
struts.xml 1KB
index.jsp 162B
META-INF
MANIFEST.MF 39B
include
includes.jsp 114B
welcome.jsp 3KB
.myeclipse
src
log4j.properties 300B
struts.properties 122B
leo.conf 369B
com
leo
constants
LoginStauts.java 68B
controller
UserController-userAction-validation.xml 744B
UserController.java 2KB
BaseController.java 433B
po
Article.java 764B
Log.java 918B
User.java 950B
Mail.java 752B
CommonEntity.java 636B
PrimaryEntity.java 708B
service
IMailService.java 130B
IGenericService.java 2KB
IUserService.java 129B
IArticleService.java 182B
impl
MailServiceImpl.java 332B
LogServiceImpl.java 322B
UserServiceImpl.java 329B
GenericServiceImpl.java 3KB
ArticleServiceImpl.java 2KB
ILogService.java 129B
util
FilerSpecial.java 2KB
JavaMailSenderUtil.java 2KB
PageSize.java 94B
PageInfo.java 6KB
JspSQL.java 740B
RegEx.java 1KB
struts_xml
user.xml 1KB
struts.xml 1KB
.classpath 3KB
共 82 条
- 1
资源评论
- strivecombat2013-04-24蛮不错的,值得学习!!
- knsta2013-02-20不错,值得学习
- cheqinzho2014-11-03不错的选择,入门级
jackKang
- 粉丝: 37
- 资源: 772
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功