?? fenye.java
字號:
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -