自定义分页标签最新修改版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标签处理类:
/**
* ClassName: PagerTag.java
* created on Oct 21, 2008
* Copyrights 2008 qjyong All rights reserved.
* EMail: qjyong@
*/
package com.qiujy.tags;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
/**
* 自定义分页标签
* 使用方式 * pageNo="1" * recordCount="100" * url="index.jsp" /> * * @author qiujy * */ public class PagerTag extends TagSupport { private int pageSize = 10; // 每页要显示的记录数private int pageNo = 1; // 页号 private int recordCount; // 总记录数 private String url; // 目的地URL public void setPageSize(int pageSize) { this.pageSize = pageSize; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public void setRecordCount(int recordCount) { this.recordCount = recordCount; } public void setUrl(String url) { this.url = url; } // 主要的逻辑 @Override public int doStartTag() throws JspException { if(recordCount == 0){ return super.doStartTag(); } // 总页数 int pageCount = (recordCount + pageSize - 1) / pageSize; // 页号越界处理 if (pageNo > pageCount) { pageNo = pageCount; } if (pageNo < 1) { pageNo = 1; } StringBuilder sb = new StringBuilder(); sb.append("
//------------------------------------ 获取所有請求中的参数
HttpServletRequest request = (HttpServletRequest) pageContext
.getRequest();
Enumeration
String name = null;
String value = null;
//把请求中的所有参数当作隐藏表单域在页面中写出)
while (enumeration.hasMoreElements()) {
name = enumeration.nextElement();
value = request.getParameter(name);
// 去除页号
if (name.equals("pageNo")) {
if (null != value && !"".equals(value)) {
pageNo = Integer.parseInt(value);
}
}
sb.append("\r\n");
}
//----------------------------------------------------
sb.append(" 总共有" + pageCount + "页,")
.append("当前是第" + pageNo + "页\r\n");
if (pageNo == 1) {
sb.append("首页");
sb.append(" ");
sb.append("上一页\r\n");
} else {
sb.append("首页\r\n"); sb.append(" ");
sb.append("上一页\r\n");
}
sb.append(" ");
if (pageNo == pageCount) {
sb.append("下一页");
sb.append(" ");
sb.append("尾页\r\n");
} else {
sb.append("下一页\r\n");
sb.append(" ");
sb.append("尾页\r\n");
}
sb.append(" 跳到
if (i == pageNo) {
sb.append("