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

📄 paginationsupport.java

📁 使用WEBWORK,SPRING,HIBERNATE编写的简单的添加
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/**
 *文件功能: 
 */
package com.common.util;

import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;

import com.common.Config;

/**
 * @作者 徐建协
 * @日期 2008-1-15
 */
public class PaginationSupport {
	public final static int PAGESIZE = 20;

	private int pageSize = PAGESIZE;// 每页的记录数

	private List items;

	private int totalCount;// 总记录数

	private int totalPages;// 总页数

	private int curPage = 1;// 当前页

	private int[] indexes = new int[0];// 每页的起始索引

	private int startIndex = 0;

	private String url = "";// 页面地址

	private String html = "";

	private String urlPara = "";
	
	private String contextPath="";
	
	private boolean selfDefineNum=true;//是否可以自定义分页数量
	
	private Map<String,String> map=new HashMap<String,String>();
	private StringBuffer buf = new StringBuffer("");

	// 页面传递的参数
	private Map paramMap = new HashMap();

	public PaginationSupport(Map paramMap) {
		setParamMap(paramMap);
	}
	public String getParameter(String paraName){
		if(paramMap.get(paraName) instanceof String[] ){
			String[] e = (String[]) paramMap.get(paraName);
			return e[0];
		}else{
			return null;
		}
	}
	public String[] getParameters(String paraName){
		if(paramMap.get(paraName) instanceof String[] ){
			String[] e = (String[]) paramMap.get(paraName);
			return e;
		}else{
			return null;
		}
	}	
	public PaginationSupport(List items, int totalCount) {
		setPageSize(PAGESIZE);
		setTotalCount(totalCount);
		setItems(items);
		// setStartIndex(0);
	}

	public PaginationSupport(List items) {
		setPageSize(PAGESIZE);
		setTotalCount(totalCount);
		setItems(items);
		setStartIndex(0);
	}

	public PaginationSupport(List items, int totalCount, int startIndex) {
		setPageSize(PAGESIZE);
		setTotalCount(totalCount);
		setItems(items);
		setStartIndex(startIndex);
	}

	public PaginationSupport(List items, int totalCount, int pageSize,
			int startIndex) {
		setPageSize(pageSize);
		setTotalCount(totalCount);
		setItems(items);
		setStartIndex(startIndex);
	}

	public PaginationSupport(int pageSize, int curPage) {
		setPageSize(pageSize);
		setCurPage(curPage);
	}

	public String getHtml() {
		buf.setLength(0);
		buf.append(""
						+ "<script language=\"javascript\" type=\"text/javascript\">\n"
						+ "function pagination_key(){\n"
						+ "	if (((window.event.keyCode>=48)&&(window.event.keyCode<=57))||(window.event.keyCode==45)){\n"
						+ "				return window.event.keyCode;\n"
						+ "	}\n"
						+ "	if(window.event.keyCode==13){\n"
						+ "		pagination_gotoPage();\n"
						+ "	}\n"
						+ "	return window.event.keyCode=0;\n"
						+ "}\n"
						+ "function pagination_gotoPage() {\n"
						+ "	var pagination_param = \""+urlPara+"\";\n"
						+ "	var pagination_url=\""+url+"\";\n"
						+ "	var pagination_defaultPageSize=\""+Config.pageSize+"\";\n"
						+ "	var pagination_maxPage=\""+totalPages+"\";\n"
						+ "	var pagination_pageSize=document.getElementById('pagination_pageSize').value;\n"
						+ "	var pagination_intRegex = \"^[\\\\d]+$\";\n"
						+ "	if (pagination_pageSize.length==0){\n"
						+ "	  pagination_pageSize=pagination_defaultPageSize;\n"
						+ "	}else{\n"
						+ "	  if(!new RegExp(pagination_intRegex,\"g\").test(pagination_pageSize)){\n"
						+ "		pagination_pageSize=pagination_defaultPageSize;\n"
						+ "	  }else{\n"
						+ "		pagination_pageSize=parseInt(pagination_pageSize);\n"
						+ "		if (pagination_pageSize<1){\n"
						+ "		  pagination_pageSize=pagination_defaultPageSize;\n"
						+ "		}\n"
						+ "	  }\n"
						+ "	}\n"
						+ "	var pagination_newPage = document.getElementById('pagination_jumpto').value;\n"
						+ "	if (pagination_newPage.length==0){\n"
						+ "	  pagination_newPage=\"1\";\n"
						+ "	}else{\n"
						+ "	  if(!new RegExp(pagination_intRegex,\"g\").test(pagination_newPage)){\n"
						+ "		pagination_newPage=\"1\";\n"
						+ "	  }else{\n"
						+ "		pagination_newPage=parseInt(pagination_newPage);\n"
						+ "		if (pagination_newPage>pagination_maxPage){\n"
						+ "			 pagination_newPage=pagination_maxPage;\n"
						+ "		}\n"
						+ "	  }\n"
						+ "	}\n"
						+ "	pagination_url=pagination_url+\"?curPage=\"+pagination_newPage+\"&pageSize=\"+pagination_pageSize;\n"
						+ "	if (pagination_param.length>0){\n"
						+ "	  pagination_url+=pagination_param;\n"
						+ "	}\n"
						+ "	window.location=pagination_url;\n"
						+ "}\n"
						+ "</script> \n");
		
		buf.append("<style type=\"text/css\">\n");
		buf.append("DIV.Content {BORDER-RIGHT: #ff9000 1px solid; BORDER-TOP: #ffe1ad 7px solid; BORDER-LEFT: #ff9000 1px solid; BORDER-BOTTOM: #ff9000 1px solid}\n");
		buf.append("DIV.PageChanger {LINE-HEIGHT: 20px; HEIGHT: 20px; TEXT-ALIGN: right}\n");
		buf.append("DIV.PageChanger IMG {VERTICAL-ALIGN: -3px}\n");
		buf.append("DIV.PageChanger INPUT {BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; MARGIN: 0px 2px; BORDER-LEFT: #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid; BACKGROUND-COLOR: #fff}\n");
		buf.append("DIV.PageChanger INPUT {HEIGHT: 12px; voice-family: inherit}\n");
		buf.append("</style>\n");
		buf.append("<DIV class=\"PageChanger\">\n");
		if(this.selfDefineNum){
			buf.append("自定义显示\n");
			buf.append("<INPUT onKeyPress=\"pagination_key()\" id=\"pagination_pageSize\"  style=\"font-size:11px;width:30px;height:15px\" value=\""+pageSize+"\" >条/页&nbsp;\n");		
		}else{
			buf.append(pageSize+"条/页&nbsp;\n");			
		}

		buf.append("共"+this.totalPages+"页"+ this.totalCount +"条记录\n");
		if (curPage <= 1) {
			buf.append("<IMG title=\"翻到上一页\" alt=\"上一页\" src=\""+this.getContextPath()+"/image/sys/pre_page_simple.gif\" border=\"0\" >\n");
		} else {
			buf.append("<a href=\"" + url + "?pageSize=" + pageSize
					+ "&curPage=" + (curPage - 1) + urlPara + "\"><IMG title=\"翻到上一页\" alt=\"上一页\" src=\""+this.getContextPath()+"/image/sys/pre_page_simple_act.gif\" border=\"0\"></a>\n");
		}
		int i = 0;
		if (this.totalPages <= 9) {
			for (i = 1; i <= this.totalPages; i++) {
				if (i == curPage) {
					buf.append("<strong>" + i + "</strong>\n");
				} else {
					buf.append("<a href=\"" + url + "?pageSize=" + pageSize
							+ "&curPage=" + i + urlPara + "\">" + i + "</a>\n");
				}
			}
		} else if (this.totalPages > 9) {
			if (curPage <= 4) {// 当前页位于前面4页
				for (i = 1; i < curPage + 2; i++) {
					if (i == curPage) {
						buf.append("<strong>" + i + "</strong>\n");
					} else {
						buf.append("<a href=\"" + url + "?pageSize="
								+ pageSize + "&curPage=" + i + urlPara + "\">"
								+ i + "</a>\n");
					}
				}
				buf.append("...\n");
				for (i = this.totalPages - 1; i <= this.totalPages; i++) {
					buf.append("<a href=\"" + url + "?pageSize=" + pageSize
							+ "&curPage=" + i + urlPara + "\">" + i + "</a>\n");
				}
			} else if (curPage > 4 && curPage <= this.totalPages - 4) {// 当前页中间部分
				for (i = 1; i <= 2; i++) {
					buf.append("<a href=\"" + url + "?pageSize=" + pageSize
							+ "&curPage=" + i + urlPara + "\">" + i + "</a>\n");
				}
				buf.append("...");
				for (i = curPage - 2; i <= curPage + 2; i++) {
					if (i == curPage) {
						buf.append("<strong>" + i + "</strong>\n");
					} else {
						buf.append("<a href=\"" + url + "?pageSize="
								+ pageSize + "&curPage=" + i + urlPara + "\">"
								+ i + "</a>\n");
					}
				}
				buf.append("...");
				for (i = this.totalPages - 1; i <= this.totalPages; i++) {
					buf.append("<a href=\"" + url + "?pageSize=" + pageSize
							+ "&curPage=" + i + urlPara + "\">" + i + "</a>\n");
				}
			} else if (curPage > this.totalPages - 4) {// 当前页位于后面的部分
				for (i = 1; i <= 2; i++) {
					buf.append("<a href=\"" + url + "?pageSize=" + pageSize
							+ "&curPage=" + i + urlPara + "\">" + i + "</a>\n");
				}
				buf.append("...");
				for (i = curPage - 2; i <= curPage + 2; i++) {
					if (i <= totalPages) {
						if (i == curPage) {
							buf.append("<strong>" + i + "</strong>\n");
						} else {
							buf.append("<a href=\"" + url + "?pageSize="
									+ pageSize + "&curPage=" + i + urlPara
									+ "\">" + i + "</a>\n");
						}
					}
				}
			}
		}
		// 下页
		if (curPage >= this.totalPages) {
			buf.append("<IMG title=\"翻到下一页\" alt=\"下一页\" src=\""+this.getContextPath()+"/image/sys/next_page.gif\" border=\"0\">\n");
		} else {
			buf.append("<a href=\"" + url + "?pageSize=" + pageSize
					+ "&curPage=" + (curPage + 1) + urlPara
					+ "\"><IMG title=\"翻到下一页\" alt=\"下一页\" src=\""+this.getContextPath()+"/image/sys/next_page_act.gif\" border=\"0\"></a>\n");
		}
		// 尾页
		/*if (curPage >= this.totalPages) {
			buf.append("<li class=\"current\">尾页</li>\n");
		} else {

⌨️ 快捷键说明

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