package com.news.page;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* 数据分页辅助类
* 定义每页显示记录数,并生成HTML格式的分页条
* @author Yinzhi Geng
*/
public class PageHelper {
/**
* 分页条HTML代码
*/
public static final String BREAKPAGE =
"<table width='20%' align='center'><tr><td height='5'></td></tr></table>" +
"<table width='780' align=center cellpadding='0' cellspacing='0' bgcolor='#F4F4F4'" +
" style='border: 1 solid #CCCCCC'> <tr><td height='30' class='font0' align='center' valign='middle'> 共 " +
"<font color=blue>#total}</font> 条记录 #firstPageStart}首 页#firstPageEnd} " +
"#perPageStart}上一页#perPageEnd} #nextPageStart}下一页#nextPageEnd} #lastPageStart}" +
"尾 页#lastPageEnd} 页次:#page}/#allPage} 每页显示 #numPage} 条 " +
" 跳转到第 #jumpPage} 页</td></tr></table>";
private HttpServletRequest request;
private HttpSession session;
/**
* 完成初始化
* 构造器
* @param request
*/
public PageHelper(HttpServletRequest request) {
this.request = request;
this.session = this.request.getSession();
}
/**
* 用于计算用户自定义每页显示记录数
*
* @return
*/
public int doCustomPerPage(int defaultPerPage) {
int perPage = defaultPerPage;
String cUserPerPage = null;
String cPerPage = StringUtil.getString(request.getParameter("perPage"));
if (!"".equals(cPerPage)) {
this.session.setAttribute("cPerPage", cPerPage);
}
cUserPerPage = (String) this.session.getAttribute("cPerPage");
if (null != cUserPerPage) {
perPage = Integer.parseInt(cUserPerPage);
}
return perPage;
}
/**
* 获取HTML格式分页条
* @param pageObject
* @return
*/
public String getPageBreakStr(Page pageObject) {
int page = 1;
int total = 0;
int perPage = 20;
/**
* 取分页器参数
*/
page = pageObject.getPage();
total = pageObject.getTotal();
perPage = pageObject.getPerPage();
String contextPath = pageObject.getContextPath();
String url = contextPath + pageObject.getUrl();
String param = pageObject.getParam();
/**
* 定义显示控制
* display1:首页
* display2:上一页
* display3:下一页
* display4:最后一页
*/
boolean display1 = false;
boolean display2 = false;
boolean display3 = false;
boolean display4 = false;
boolean isHaveParam=false;
if(null!=param && !"".equals(param)){
isHaveParam = true;
}
int totalPage = (total + perPage - 1) / perPage;
if (page > totalPage || page < 0) {
page = 1;
}
/**
* 首页
*/
StringBuffer firstPageBuffer = new StringBuffer();
if (totalPage > 1) {
firstPageBuffer.append(url + "?page=1");
if(isHaveParam){
firstPageBuffer.append("&"+param);
}
display1 = true;
}
/**
* 上一页
*/
StringBuffer perPageBuffer = new StringBuffer();
if (page > 1) {
perPageBuffer.append(url + "?page=" + (page - 1));
if(isHaveParam){
perPageBuffer.append("&"+param);
}
display2 = true;
}
/**
* 下一页
*/
StringBuffer nextPageBuffer = new StringBuffer();
if (page < totalPage) {
nextPageBuffer.append(url + "?page=" + (page + 1));
if(isHaveParam){
nextPageBuffer.append("&"+param);
}
display3 = true;
}
/**
* 最后一页
*/
StringBuffer lastPageBuffer = new StringBuffer();
if (totalPage > 1) {
lastPageBuffer.append(url + "?page=" + totalPage);
if(isHaveParam){
lastPageBuffer.append("&"+param);
}
display4 = true;
}
/**
* 每页显示记录数
*/
StringBuffer numPageBuffer = new StringBuffer();
numPageBuffer.append("<select name=\"perPage\" ");
numPageBuffer.append(" onchange=\"");
numPageBuffer.append(" if(this.options[this.selectedIndex]");
numPageBuffer.append(".value!=''){");
numPageBuffer.append(" location='" + url + "?");
numPageBuffer.append("page=1");
numPageBuffer.append("&perPage='+this.options[this.selectedIndex]");
numPageBuffer.append(".value+");
if(isHaveParam){
numPageBuffer.append("'&"+param+"'");
}
numPageBuffer.append(";}\">");
for (int i = 1; i <= 4; i++) {
numPageBuffer.append("<option value=\"" + (i * 10) + "\"");
if ((i * 10) == perPage) {
numPageBuffer.append(" selected>" + (i * 10) + "</option>");
} else {
numPageBuffer.append(">" + (i * 10) + "</option>");
}
}
numPageBuffer.append("</select>");
/**
* 跳转到第几页
*/
StringBuffer jumpPageBuffer = new StringBuffer();
jumpPageBuffer.append("<select name=\"pages\"");
jumpPageBuffer.append(" onchange=\"");
jumpPageBuffer.append(" if(this.options[this.selectedIndex]");
jumpPageBuffer.append(".value!=''){location='" + url + "?");
jumpPageBuffer.append("page='+this.options[this.selectedIndex]");
jumpPageBuffer.append(".value+");
if(isHaveParam){
jumpPageBuffer.append("'&"+param+"'");
}
jumpPageBuffer.append(";}\">");
for (int i = 1; i <= totalPage; i++) {
jumpPageBuffer.append("<option value=\"" + i + "\"");
if (i == page) {
jumpPageBuffer.append("selected");
}
jumpPageBuffer.append(">" + i + "</option>");
}
jumpPageBuffer.append("</select>");
/**
* 整个分页条
*/
String deTemplateString = "";
try {
/**
* 获取分页条HTML显示
*/
deTemplateString = BREAKPAGE;
/**
* 替换HTML代码的标记
*/
deTemplateString = deTemplateString.replaceAll("#total}", String
.valueOf(total));
deTemplateString = deTemplateString.replaceAll("#page}", String
.valueOf(page));
deTemplateString = deTemplateString.replaceAll("#allPage}", String
.valueOf(totalPage));
if (display1) {
deTemplateString = deTemplateString.replaceAll("#firstPageStart}",
"<a href=\""+firstPageBuffer.toString()+"\">");
deTemplateString = deTemplateString.replaceAll("#firstPageEnd}","</a>");
}else{
deTemplateString = deTemplateString.replaceAll("#firstPageStart}","");
deTemplateString = deTemplateString.replaceAll("#firstPageEnd}","");
}
if (display2) {
deTemplateString = deTemplateString.replaceAll("#perPageStart}",
"<a href=\""+perPageBuffer.toString()+"\">");
deTemplateString = deTemplateString.replaceAll("#perPageEnd}","</a>");
}else{
deTemplateString = deTemplateString.replaceAll("#perPageStart}","");
deTemplateString = deTemplateString.replaceAll("#perPageEnd}","");
}
if (display3) {
deTemplateString = deTemplateString.replaceAll("#nextPageStart}",
"<a href=\""+nextPageBuffer.toString()+"\">");
deTemplateString = deTemplateString.replaceAll("#nextPageEnd}","</a>");
}else{
deTemplateString = deTemplateString.replaceAll("#nextPageStart}","");
deTemplateString = deTemplateString.replaceAll("#nextPageEnd}","");
}
if (display4) {
deTemplateString = deTemplateString.replaceAll("#lastPageStart}",
"<a href=\""+lastPageBuffer.toString()+"\">");
deTemplateString = deTemplateString.replaceAll("#lastPageEnd}","</a>");
}else{
deTemplateString = deTemplateString.replaceAll("#lastPageStart}","");
deTemplateString = deTemplateString.replaceAll("#lastPageEnd}","");
}
deTemplateString = deTemplateString.replaceAll("#numPage}",
numPageBuffer.toString());
deTemplateString = deTemplateString.replaceAll("#jumpPage}",
jumpPageBuffer.toString());
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(deTemplateString);
return deTemplateString;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
新闻系统 struts+spring+hibernate开发的 开发环境_eclipse3.1+MyEclipse4.1+tomcat 5.rar (317个子文件)
PageHelper.class 6KB
GuestAction.class 5KB
NewsDao.class 4KB
LoginAction.class 4KB
AddNewsAction.class 4KB
TypeDao.class 4KB
AddtypeAction.class 4KB
AdminDao.class 3KB
GuestBookDao.class 3KB
News.class 3KB
AddAdminAction.class 3KB
IntoViewHelp.class 3KB
GuestHelp.class 3KB
IntoViewForm.class 2KB
AddNewsForm.class 2KB
LoginDao.class 2KB
NewsHelp.class 2KB
TypeHelp.class 2KB
ViewDao.class 2KB
Page.class 2KB
StringUtil.class 2KB
NewsService.class 2KB
IntoViewDao.class 2KB
Guestbook.class 2KB
IntoViewAction.class 2KB
GuestForm.class 2KB
SearchForm.class 2KB
ViewForm.class 2KB
ViewAction.class 2KB
LookDao.class 2KB
AddtypeForm.class 2KB
AddAdminForm.class 2KB
SearchAction.class 2KB
Adminuser.class 2KB
AdminValsession.class 2KB
Newtype.class 2KB
IntoViewDao$1.class 2KB
GuestBookDao$1.class 2KB
NewsDao$1.class 2KB
LookAction.class 2KB
SearchDao$1.class 1KB
LookForm.class 1KB
TypeService.class 1KB
ViewDao$1.class 1KB
TypeValsession.class 1KB
NewsValsession.class 1KB
MyFilter.class 1KB
TypeDao$1.class 1KB
GuestBookService.class 1KB
IntoViewService.class 1KB
LoginForm.class 1KB
SearchDao.class 1KB
AdminService.class 1KB
LoginService.class 990B
ViewService.class 934B
GetDate.class 863B
SearchService.class 860B
LookService.class 830B
Check.class 674B
GetXml.class 613B
GetId.class 571B
INewsService.class 317B
INewsDao.class 308B
IpageIntoViewDao.class 299B
IpageGuestBookDao.class 295B
IpageIntoView.class 293B
IpageGuestBook.class 289B
IpageNewsDao.class 289B
IpageNews.class 283B
ItypeService.class 270B
ItypeDao.class 261B
IloginService.class 234B
IAdminService.class 227B
IloginDao.class 222B
IguestBookService.class 220B
IAdminDao.class 215B
IpageDao.class 213B
IguestBookDao.class 211B
Ipage.class 207B
IviewService.class 195B
IviewDao.class 183B
IsearchService.class 182B
IlookService.class 174B
IsearchDao.class 170B
IintovVewService.class 165B
IlookDao.class 162B
IintoViewDao.class 156B
.classpath 6KB
css.css 5KB
u_11.gif 16KB
noResult.gif 6KB
face7.gif 2KB
face5.gif 2KB
face4.gif 2KB
face3.gif 2KB
face2.gif 2KB
face6.gif 2KB
face1.gif 2KB
u_13.gif 899B
pic01.gif 857B
共 317 条
- 1
- 2
- 3
- 4
资源评论
- 大闸蟹小龙虾2012-08-03测试过 ,很好,可以用
sbai520
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功