fenye.java

来自「图书馆管理系统 能满足 查询」· Java 代码 · 共 270 行

JAVA
270
字号
package com.jxyd.common;

import javax.servlet.http.HttpServletRequest;
	public class Fenye {
		/**
		 * 牛琛
		 * 分页BEAN
		 * */
		private String display="";
		private Integer currentPage=1;
		private Integer start=0;
		private Integer pageSize=0;

		public Integer getStart() {
			return start;
		}
		public void setStart(Integer start) {
			this.start = start;
		}
		public Integer getPageSize() {
			return pageSize;
		}
		public void setPageSize(Integer pageSize) {
			this.pageSize = pageSize;
		}
		public Integer getCurrentPage() {
			return currentPage;
		}
		public void setCurrentPage(Integer currentPage) {
			this.currentPage = currentPage;
		}
		public String getDisplay() {
			return display;
		}
		public void setDisplay(String display) {
			this.display = display;
		}

		public void init(HttpServletRequest req, String url,String strutsmethod,Integer dataSize,String pageVariable,Integer midnumber){
			if(req.getAttribute(pageVariable)==null){
				req.setAttribute(pageVariable, 1);
			}
		
			if(dataSize!=0){
				Integer totalPage = dataSize%pageSize>0?(dataSize/pageSize+1):(dataSize/pageSize);
				try {this.currentPage = Integer.parseInt(req.getParameter(pageVariable));}catch(Exception ex){this.currentPage = 1;}
				String target="";
				//用于删除  如果删除了的是最后一页的最好数据  
				if(totalPage<currentPage){
					currentPage=totalPage;
					target=pageVariable+"="+(this.currentPage+1);
				}else{
					 target=pageVariable+"="+this.currentPage;
				}
				try {this.start = (currentPage-1)*this.pageSize;}catch(Exception e){this.start = 0;}
				String ru = req.getRequestURI();
				String qs = req.getQueryString()==null?"":req.getQueryString();
				qs=qs.replace(target, "");
				qs=geiqsmethod(strutsmethod,qs);//生成跳转路径
				if(qs!=null){
				 ru = ru.substring(0,ru.lastIndexOf("/"))+"/"+url+"?"+qs;
				}else{
					ru = ru.substring(0,ru.lastIndexOf("/"))+"/"+url;
				}	
//				Boolean hasPageVariable = false;
//				Enumeration<?> e = req.getParameterNames();
//				while(e.hasMoreElements()){
//					String parameterName = e.nextElement().toString();
//					if(parameterName.trim().equals(pageVariable.trim()))
//					{hasPageVariable = true;
//					break;}
//				}
				if(qs!=""&&!qs.endsWith("&")){
					ru+="&";
				}
				
				StringBuffer lables = new StringBuffer();
				if(midnumber!=0){
					Integer increment = midnumber-1;
					Integer maxnumber = midnumber*2-2;
					Integer groupStart;
					if(currentPage>midnumber&&totalPage-currentPage>=midnumber){
						groupStart = currentPage-increment;
					//	System.out.println("a"  +groupStart);
					}else if(totalPage>maxnumber&&totalPage-currentPage<midnumber){
						groupStart = totalPage-maxnumber;
					//	System.out.println("b"  +groupStart);
					}else{
						groupStart = 1;
					//	System.out.println("c"  +groupStart);
					}		
					Integer groupEnd = (totalPage-groupStart>=maxnumber)?(groupStart+maxnumber):totalPage;	
				
				//	System.out.println("e"  +groupEnd);
					for(int j=groupStart;j<=groupEnd;j++){
						if(j==currentPage){
							lables.append("<a class='currentPage'  href='"+ru+pageVariable+"="+j+"'>"+j+"</a>");
						}else{
								lables.append("<a href='"+ru+pageVariable+"="+j+"'>"+j+"</a>");	
						}			
					}
				}		
				String first ="";
				String last = "";
				String prev = "";
				String next = "";
					 first = (currentPage>1)?"href='"+(ru+pageVariable+"=1")+"'":"";
					 last = (currentPage<totalPage)?"href='"+(ru+pageVariable+"="+totalPage)+"'":"";
					 prev = (currentPage>1)?"href='"+(ru+pageVariable+"="+(currentPage-1))+"'":"";
					 next = (currentPage<totalPage)?"href='"+(ru+pageVariable+"="+(currentPage+1))+"'":"";
				String options = "";
				for(int i=0;i<=totalPage;i++){
					String selected = i==currentPage?"selected=\"selected\"":"";
					options+="<option value='"+i+"' "+selected+">"+i+"</option>";
				}
				StringBuffer sb = new StringBuffer();
				sb.append("<a ");
				sb.append(first);
				sb.append(">首页</a>");
				sb.append("<a ");
				sb.append(prev);
				sb.append(">上一页</a>");
				if(midnumber!=0){sb.append(lables);}
				sb.append("<a ");
				sb.append(next);
				sb.append(">下一页</a>");
				sb.append("<a ");
				sb.append(last);
				sb.append(">末页</a>");
				sb.append("<a>共"+totalPage+"页/"+dataSize+"条</a>");
				sb.append("<select onchange=\"location.href='"+ru+pageVariable+"='+this.value\"");
				sb.append(options);
				sb.append("</select>");
				this.display=sb.toString();
			}
		}
		//查询用的分页
		public void init(HttpServletRequest req, String url,String strutsmethod,Integer dataSize,String pageVariable,Integer midnumber,String selectvalue){
	
				
				if(req.getAttribute(pageVariable)==null){
					req.setAttribute(pageVariable, 1);
				}
			
				if(dataSize!=0){
					Integer totalPage = dataSize%pageSize>0?(dataSize/pageSize+1):(dataSize/pageSize);
					try {this.currentPage = Integer.parseInt(req.getParameter(pageVariable));}catch(Exception ex){this.currentPage = 1;}
					String target="";
					//用于删除  如果删除了的是最后一页的最好数据  
					if(totalPage<currentPage){
						currentPage=totalPage;
						target=pageVariable+"="+(this.currentPage+1);
					}else{
						 target=pageVariable+"="+this.currentPage;
					}
					try {this.start = (currentPage-1)*this.pageSize;}catch(Exception e){this.start = 0;}
					String ru = req.getRequestURI();
					String qs = req.getQueryString()==null?"":req.getQueryString();
					qs=qs.replace(target, "");
					qs=geiqsmethod(strutsmethod,qs);//生成跳转路径
					if(qs!=null){
					 ru = ru.substring(0,ru.lastIndexOf("/"))+"/"+url+"?"+qs;
					}else{
						ru = ru.substring(0,ru.lastIndexOf("/"))+"/"+url;
					}	
//					Boolean hasPageVariable = false;
//					Enumeration<?> e = req.getParameterNames();
//					while(e.hasMoreElements()){
//						String parameterName = e.nextElement().toString();
//						if(parameterName.trim().equals(pageVariable.trim()))
//						{hasPageVariable = true;
//						break;}
//					}
					if(selectvalue!=null){
						ru+=selectvalue;
					}
					if(qs!=""&&!qs.endsWith("&")){
						ru+="&";
					}
					
					StringBuffer lables = new StringBuffer();
					if(midnumber!=0){
						Integer increment = midnumber-1;
						Integer maxnumber = midnumber*2-2;
						Integer groupStart;
						if(currentPage>midnumber&&totalPage-currentPage>=midnumber){
							groupStart = currentPage-increment;
						//	System.out.println("a"  +groupStart);
						}else if(totalPage>maxnumber&&totalPage-currentPage<midnumber){
							groupStart = totalPage-maxnumber;
						//	System.out.println("b"  +groupStart);
						}else{
							groupStart = 1;
						//	System.out.println("c"  +groupStart);
						}		
						Integer groupEnd = (totalPage-groupStart>=maxnumber)?(groupStart+maxnumber):totalPage;	
					
					//	System.out.println("e"  +groupEnd);
						for(int j=groupStart;j<=groupEnd;j++){
							if(j==currentPage){
								lables.append("<a class='currentPage'  href='"+ru+pageVariable+"="+j+"'>"+j+"</a>");
							}else{
									lables.append("<a href='"+ru+pageVariable+"="+j+"'>"+j+"</a>");	
							}			
						}
					}		
					String first ="";
					String last = "";
					String prev = "";
					String next = "";
						 first = (currentPage>1)?"href='"+(ru+pageVariable+"=1")+"'":"";
						 last = (currentPage<totalPage)?"href='"+(ru+pageVariable+"="+totalPage)+"'":"";
						 prev = (currentPage>1)?"href='"+(ru+pageVariable+"="+(currentPage-1))+"'":"";
						 next = (currentPage<totalPage)?"href='"+(ru+pageVariable+"="+(currentPage+1))+"'":"";
					String options = "";
					for(int i=0;i<=totalPage;i++){
						String selected = i==currentPage?"selected=\"selected\"":"";
						options+="<option value='"+i+"' "+selected+">"+i+"</option>";
					}
					StringBuffer sb = new StringBuffer();
					sb.append("<a ");
					sb.append(first);
					sb.append(">首页</a>");
					sb.append("<a ");
					sb.append(prev);
					sb.append(">上一页</a>");
					if(midnumber!=0){sb.append(lables);}
					sb.append("<a ");
					sb.append(next);
					sb.append(">下一页</a>");
					sb.append("<a ");
					sb.append(last);
					sb.append(">末页</a>");
					sb.append("<a>共"+totalPage+"页/"+dataSize+"条</a>");
					sb.append("<select onchange=\"location.href='"+ru+pageVariable+"='+this.value\"");
					sb.append(options);
					sb.append("</select>");
					this.display=sb.toString();
				}
				
		}
		public String geiqsmethod(String strutsmethod,String gqs){
			String qs=gqs;
			if(strutsmethod!=null){
				if(qs.indexOf("method")!=-1){
					String qss[]=qs.split("&");
					if(qss.length<=1){
						qs="";
					}else{
						qs=strutsmethod;
						if(qss.length>0){
							qs+="&";
						}
						for(int i=0;i<qss.length;i++){
							if(qss[i].indexOf("method")==-1){
								
								qs+=qss[i];
								if(i+1<qss.length){
									qs+="&";
								}
							}
						}
					}
				}
			}
			return qs;
		}

}

⌨️ 快捷键说明

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