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

📄 pagehelper.java

📁 java学习的必要的资料,servlet的说明很好
💻 JAVA
字号:
package com.estore.struts.utils;import javax.servlet.http.HttpServletRequest;/****************************************** * 分页辅助类 * 用法示例: * PageHelper pageHelper=new PageHelper(); * pageHelper.setPageSize(10);(可选),设置页面大小 * pageHelper.getRequestPage();获取请求的页面值 ,如页面中的page=2参数。或以其他方式获得page值则用setCurrentPage(int)方法设置当前页 * newsList=xxx.getNews(catalogId, pageHelper.getSkip(), pageHelper.getMax());获取该页面的一段数据记录 *  * out.print(pageHelper.showNavigation());用在页面中,打印导航信息 ******************************************/public class PageHelper {	final static private int DEFAULT_CURRENT_PAGE=1;//默认当前页	final static private int DEFAULT_PAGESIZE=10;	//默认页面大小	private String CURRENT_PAGE_STR="page";			//页面中分页的参数		private HttpServletRequest request;	private int _currentPage;						//当前页	private int _pageSize;							//页面大小	private int _skip;								//跳过的记录数	private int _max;								//获取记录的数量		private String _queryStr=null;					//其他查询参数字符串		private int _maxCount=-1;						//总记录数	private int _maxPage=-1;						//总页数			public PageHelper(){		this(DEFAULT_CURRENT_PAGE,DEFAULT_PAGESIZE);	}		public PageHelper(int currentPage){		this(currentPage,DEFAULT_PAGESIZE);	}		public PageHelper(int currentPage,int pageSize){		_currentPage=filterPageNum(currentPage);		_pageSize=pageSize;		calculateSpan();			}		public void setCurrentPage(int currentPage){		_currentPage=filterPageNum(currentPage);		calculateSpan();	}		public void setPageSize(int pageSize){		if(pageSize<1)			pageSize=DEFAULT_PAGESIZE;		_pageSize=pageSize;		calculateSpan();	}		public void setQueryStr(String queryStr){		this._queryStr=queryStr;	}		public void setMaxCount(int maxCount){		_maxCount=maxCount;				if(_maxCount%_pageSize!=0)			_maxPage=_maxCount/_pageSize+1;		else			_maxPage=_maxCount/_pageSize;	}		public void setMaxPage(int maxPage){		this._maxPage=maxPage;	}		public int getCurrentPage(){		return this._currentPage;	}		public int getPageSize(){		return this._pageSize;	}		public int getSkip(){		return this._skip;	}		public int getMax(){		return this._max;	}		public int getMaxCount(){		return this._maxCount;	}		public int getMaxPage(){		return this._maxPage;	}				public String getQueryStr(){		return this._queryStr;	}				public HttpServletRequest getRequest() {		return request;	}	public void setRequest(HttpServletRequest request) {		this.request = request;	}	/***********************************	 * 获取页面中的“page=int的的参数,并计算出	 * 该获取的一段记录	 ***********************************/	public void getRequestPage(){		try{			_currentPage=Integer.parseInt(request.getParameter(CURRENT_PAGE_STR));		}catch(Exception e){			_currentPage=1;		}		_currentPage=filterPageNum(_currentPage);		calculateSpan();	}		/***********************************	 * 生成导航信息,如上一页、下一页等	 ***********************************/	public String showNavigation(String methodname){		StringBuffer str=new StringBuffer();				int former=_currentPage-1;		int next=_currentPage+1;		//将页数做合法处理;		former=filterPageNum(former);		next=filterPageNum(next);				str.append("第"+_currentPage+"页&nbsp;&nbsp;");				str.append("每页"+_pageSize+"条&nbsp;");		if(_maxPage>=0&&_maxCount>=0)			str.append("共"+_maxPage+"页/"+_maxCount+"条记录");		str.append("&nbsp;&nbsp;");				///////////////首页/////////////////		str.append("<a href=\"?method="+methodname+"&"+CURRENT_PAGE_STR+"=1\">首页</a>&nbsp;&nbsp;");				///////////////上一页/////////////////		if(_currentPage>1){			str.append("<a href=\"?method="+methodname+"&"+CURRENT_PAGE_STR+"="+String.valueOf(former));			if(_queryStr!=null)				str.append("&"+_queryStr);			str.append("\">上一页</a>&nbsp;&nbsp;");		}		else			str.append("上一页&nbsp;&nbsp;");						///////////////下一页/////////////////		if(_maxPage>0&&_currentPage<_maxPage){			str.append("<a href=\"?method="+methodname+"&"+CURRENT_PAGE_STR+"="+String.valueOf(next));			if(_queryStr!=null)				str.append("&"+_queryStr);			str.append("\">下一页</a>&nbsp;&nbsp;");		}		else			str.append("下一页&nbsp;&nbsp;");				////////////////尾页///////////////		if(_maxPage>0)			str.append("<a href=\"?method="+methodname+"&"+CURRENT_PAGE_STR+"="+this._maxPage+"\">尾页</a>&nbsp;&nbsp;");				return str.toString();	}		/***********************************	 * 计算跳过的记录数和获取记录的数量	 ***********************************/	private void calculateSpan(){		_skip=(this._currentPage-1)*_pageSize;		_max=_pageSize;	}		/***********************************	 * 使页面数值不能小于1或大于最大页面数	 ***********************************/	private int filterPageNum(int pageNum){		if(_maxPage>0){			if(pageNum>_maxPage)				pageNum=_maxPage;		}		if (pageNum<1)			pageNum=1;		return pageNum;	}		public static void main(String[] args){		PageHelper p=new PageHelper();		p.setPageSize(10);		p.setMaxCount(100);	}}

⌨️ 快捷键说明

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