⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pagetag.java

📁 一种快速开发的Java Web架构,doc里有详细的设计文档和开发文档。
💻 JAVA
字号:
/**
 *
 * 功能	 Coarse Function Description
 * 类名  PageTag
 *
 * ver       变更日        部门        变更者   变更内容
 * ──────────────────────────────────
 * V1.0    2006-10-19     国内事业部     陈志武     初版
 * V1.1    2006-10-19     国内事业部     陈志武     改定
 *
 */

package com.hisoft.cottonbusiness.core.common;

import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;

import org.apache.log4j.Logger;

/**
 * Class description in detail
 * 
 * 
 * @author 陈志武
 * @version Ver 1.0 2006-10-19 改订
 * @since Ver 1.0
 */

public class PageTag extends BodyTagSupport
{
	private static final Logger log = Logger.getLogger(PageTag.class);

	/**
	 * current page number
	 */
	private int currPage;

	/**
	 * total result row number
	 */
	private int resultCount;

	/**
	 * result row count per page
	 */
	private int pageSize;

	/**
	 * page uri
	 */
	private String uri;

	public int doAfterBody() throws JspException
	{
		return super.doAfterBody();
	}

	public int doEndTag() throws JspException
	{
		JspWriter out = pageContext.getOut();

		StringBuffer sb = new StringBuffer();
		
		sb.append("<script>");
		sb.append("\nfunction goPage(pageNumber) {");
		sb.append("\nwindow.location.href=\"" + getUri() + "&currPage=\" + pageNumber;");
		sb.append("\n}");
		sb.append("\n</script>\n");	
		
		if (getCurrPage() == 1)
		{
			sb.append("<span style='color:#999999;'>首页</span>&nbsp;&nbsp;");
		}
		else
		{
			sb.append("<a href=" + getUri() + "&currPage=1>首页</a>&nbsp;&nbsp;");
		}

		if (getCurrPage() == 1)
		{
			sb.append("<span style='color:#999999;'>上一页</span>&nbsp;&nbsp;");
		}
		else
		{
			sb.append("<a href=" + getUri() + "&pageNumber=" + getPrevPage() + ">上一页</a>&nbsp;&nbsp;");
		}
		
		if (getCurrPage() == getPageCount())
		{
			sb.append("<span style='color:#999999;'>下一页</span>&nbsp;&nbsp;");
		}
		else
		{
			sb.append("<a href=" + getUri() + "&currPage=" + getNextPage() + ">下一页</a>&nbsp;&nbsp;");
		}

		if (getCurrPage() == getPageCount())
		{
			sb.append("<span style='color:#999999;'>末页</span>&nbsp;&nbsp;&nbsp;&nbsp;");
		}
		else
		{
			sb.append("<a href=" + getUri() + "&currPage=" + getLastPage() + ">末页</a>&nbsp;&nbsp;");
		}

		sb.append("<b>" + getCurrPage() + "</b>/<b>" + getPageCount() + "</b>页&nbsp;&nbsp;");
		sb.append("共<b>" + getResultCount() + "</b>条<b>&nbsp;&nbsp;" + getPageSize() + "</b>条/页&nbsp;&nbsp;");

		//
		sb.append("<select name='gotoPage' onChange=\"javascript:goPage(this.options[this.selectedIndex].value);\">");
		for (int i = 1; i <= getPageCount(); i++)
		{
			sb.append("<option value='" + i + "' >第" + i + "页</option>\n");
		}
		sb.append("</select>");
		
		
		sb.append("\n<script>");
		
		sb.append("\nfor(var i=0; i < document.getElementById('gotoPage').options.length; i++){");
		sb.append("\nif(document.getElementById('gotoPage').options[i].value == " + getCurrPage() + ")");
		sb.append("\n{document.getElementById('gotoPage').options[i].selected=true;break;}");
		sb.append("\n}");
		
		sb.append("\n</script>\n");		
		
		try
		{
			out.println(sb.toString());
		}
		catch (IOException e)
		{
			//
		}

		return EVAL_PAGE;
	}

	public void doInitBody() throws JspException
	{
		log.debug("do init....");
		super.doInitBody();
	}

	public int doStartTag() throws JspException
	{
		log.debug("do start tag...");

		return super.doStartTag();
	}

	public BodyContent getBodyContent()
	{
		return super.getBodyContent();
	}

	public void release()
	{
		log.debug("release resource....");
		super.release();
	}

	public void setBodyContent(BodyContent arg0)
	{
		super.setBodyContent(arg0);
	}

	public void setCurrPage(int currPage)
	{
		this.currPage = currPage;
	}

	public void setPageSize(int pageSize)
	{
		this.pageSize = pageSize;
	}

	public void setResultCount(int resultCount)
	{
		this.resultCount = resultCount;
	}

	public void setUri(String uri)
	{
		this.uri = uri;
	}

	/**
	 * 取得当前页
	 * 
	 * @return
	 */
	public int getCurrPage()
	{
		return currPage;
	}

	/**
	 * 取得首页
	 * 
	 * @return
	 */
	public int getFirstPage()
	{
		return 1;
	}

	/**
	 * 取得最后一页
	 * 
	 * @return
	 */
	public int getLastPage()
	{
		return getPageCount();
	}

	/**
	 * 取得当前页的下一页
	 * 
	 * @return
	 */
	public int getNextPage()
	{
		if (currPage == getPageCount())
		{
			return currPage;
		}

		return currPage + 1;
	}

	/**
	 * 取得总页面数
	 * 
	 * @return
	 */
	public int getPageCount()
	{
		int size = (resultCount - 1) / pageSize + 1;

		return size;
	}

	/**
	 * 取得页面记录数
	 * 
	 * @return
	 */
	public int getPageSize()
	{
		return pageSize;
	}

	/**
	 * 取得当前页的前一页
	 * 
	 * @return
	 */
	public int getPrevPage()
	{
		if (1 == currPage)
		{
			return 1;
		}
		return currPage - 1;
	}

	/**
	 * 取得总记录数
	 * 
	 * @return
	 */
	public int getResultCount()
	{
		return resultCount;
	}

	public String getUri()
	{
		return uri;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -