自定义分页标签最新修改版

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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("

\r\n") .append("\r\n");

//------------------------------------ 获取所有請求中的参数

HttpServletRequest request = (HttpServletRequest) pageContext

.getRequest();

Enumeration enumeration = request.getParameterNames();

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(" 跳到