pageUtil
1 package com.ddz.util; 2 3 public class PageUtil { 4 private String page;//请求页 5 private int pageSize;//每页展示的记录数 6 private int count;//总记录数 7 8 private int prevPage;//上一页 9 private int nextPage;//下一页 10 private int currentPage;//处理后的当前页 11 private int lastPage;//总记录数 12 private int startIndex;//每页起始索引值 13 14 private String mohu; 15 //页面样式 16 private String pageStyle; 17 /** 18 * @param page 页面未处理的请求页 19 * @param count 查询出来的总记录数 20 * @param pageSize 每页的记录数 21 */ 22 public PageUtil(String page, int count, int pageSize) { 23 super(); 24 this.page = page; 25 this.pageSize = pageSize; 26 this.count = count; 27 //将计算的统计出来 28 29 //处理当前页 30 if(page==null || page == ""){ 31 this.currentPage = 1; 32 }else{ 33 this.currentPage = Integer.parseInt(page); 34 } 35 36 //处理上一页 37 if(this.currentPage <= 1){ 38 this.prevPage = 1; 39 }else{ 40 this.prevPage = this.currentPage -1; 41 } 42 43 //处理尾页 44 if(count%pageSize == 0){ 45 this.lastPage = count/pageSize; 46 }else{ 47 this.lastPage = count/pageSize + 1; 48 } 49 50 //处理下一页 51 if(this.currentPage == this.lastPage){ 52 this.nextPage = this.lastPage; 53 }else{ 54 this.nextPage = this.currentPage + 1; 55 } 56 57 //得到每页起始索引值 58 this.startIndex = (this.currentPage - 1)* pageSize; 59 60 initPageStyle();//初始化页面 分页 样式 61 } 62 /** 63 * 初始化分页样式,简化jsp页面代码 64 */ 65 private void initPageStyle() { 66 StringBuffer sb = new StringBuffer(); 67 sb.append("当前第"+this.currentPage+"/"+this.lastPage+"页,共"+this.count+"条记录\n"); 68 if(this.currentPage!=1){ 69 sb.append("<input type='button' value='首页' onclick='goPage(1)'/>\n"); 70 sb.append("<input type='button' value='上一页' onclick='goPage("+this.prevPage+")'/>\n"); 71 } 72 int currentPage=this.currentPage; 73 int lastPage=this.lastPage; 74 75 if(lastPage>5){ 76 if(currentPage>2 && currentPage<(lastPage-1)){ 77 sb.append("<input type='button' value='"+(currentPage-2)+"' onclick='goPage("+(currentPage-2)+")'/>\n"); 78 sb.append("<input type='button' value='"+(currentPage-1)+"' onclick='goPage("+(currentPage-1)+")'/>\n"); 79 sb.append("<input type='button' value='"+currentPage+"' onclick='goPage("+currentPage+")'/>\n"); 80 sb.append("<input type='button' value='"+(currentPage+1)+"' onclick='goPage("+(currentPage+1)+")'/>\n"); 81 sb.append("<input type='button' value='"+(currentPage+2)+"' onclick='goPage("+(currentPage+2)+")'/>\n"); 82 }else if(currentPage==2){ 83 sb.append("<input type='button' value='"+(currentPage-1)+"' onclick='goPage("+(currentPage-1)+")'/>\n"); 84 sb.append("<input type='button' value='"+currentPage+"' onclick='goPage("+currentPage+")'/>\n"); 85 sb.append("<input type='button' value='"+(currentPage+1)+"' onclick='goPage("+(currentPage+1)+")'/>\n"); 86 sb.append("<input type='button' value='"+(currentPage+2)+"' onclick='goPage("+(currentPage+2)+")'/>\n"); 87 }else if(currentPage==1){ 88 sb.append("<input type='button' value='"+currentPage+"' onclick='goPage("+currentPage+")'/>\n"); 89 sb.append("<input type='button' value='"+(currentPage+1)+"' onclick='goPage("+(currentPage+1)+")'/>\n"); 90 sb.append("<input type='button' value='"+(currentPage+2)+"' onclick='goPage("+(currentPage+2)+")'/>\n"); 91 }else if(currentPage==lastPage){ 92 sb.append("<input type='button' value='"+(currentPage-2)+"' onclick='goPage("+(currentPage-2)+")'/>\n"); 93 sb.append("<input type='button' value='"+(currentPage-1)+"' onclick='goPage("+(currentPage-1)+")'/>\n"); 94 sb.append("<input type='button' value='"+currentPage+"' onclick='goPage("+currentPage+")'/>\n"); 95 }else if(currentPage==(lastPage-1)){ 96 sb.append("<input type='button' value='"+(currentPage-2)+"' onclick='goPage("+(currentPage-2)+")'/>\n"); 97 sb.append("<input type='button' value='"+(currentPage-1)+"' onclick='goPage("+(currentPage-1)+")'/>\n"); 98 sb.append("<input type='button' value='"+currentPage+"' onclick='goPage("+currentPage+")'/>\n"); 99 sb.append("<input type='button' value='"+(currentPage+1)+"' onclick='goPage("+(currentPage+1)+")'/>\n"); 100 } 101 }else{ 102 for (int i=1;i<=lastPage;i++) { 103 sb.append("<input type='button' value='"+i+"' onclick='goPage("+i+")'/>\n"); 104 } 105 } 106 if(this.currentPage!=this.lastPage){ 107 sb.append("<input type='button' value='下一页' onclick='goPage("+this.nextPage+")'/>\n"); 108 sb.append("<input type='button' value='尾页' onclick='goPage("+this.lastPage+")'/>\n"); 109 } 110 111 sb.append("\n<script type='text/javascript'>\n"); 112 sb.append("function goPage(page){\n"); 113 sb.append(" location.href = changeURLArg('page',page);\n"); 114 sb.append("}\n"); 115 sb.append("function inputPage(lastPage){\n"); 116 sb.append(" var page = document.getElementById('inputPage').value;\n"); 117 sb.append(" page= page.trim();\n"); 118 sb.append(" if(!(isNaN(page)) && page.indexOf('+')==-1 && page.indexOf('-')==-1 && page.indexOf('.')==-1){\n"); 119 sb.append(" if(page>0&&page!=''){\n"); 120 sb.append(" if(page<=lastPage){\n"); 121 sb.append(" location.href = changeURLArg('page',page);\n"); 122 sb.append(" }else{\n"); 123 sb.append(" alert('您输入的超过了总页码!');\n"); 124 sb.append(" }\n"); 125 sb.append(" }else{\n"); 126 sb.append(" alert('您输入的不符合标准!');\n"); 127 sb.append(" }\n"); 128 sb.append(" }else{\n"); 129 sb.append(" alert('您输入的不符合标准!');\n"); 130 sb.append(" }\n"); 131 sb.append("}\n"); 132 sb.append("function mohu(){\n"); 133 sb.append(" location.href = changeURLArg('mohu',document.getElementById('mohu').value,1);\n"); 134 sb.append("}\n"); 135 sb.append("function changeURLArg(arg,arg_val,flag){\n"); 136 sb.append(" var url = window.location.toString(); \n"); 137 sb.append(" if(1==flag){\n"); 138 sb.append(" url = changeURLArg('page',1);\n"); 139 sb.append(" }\n"); 140 sb.append(" var pattern=arg+'=([^&]*)'; \n"); 141 sb.append(" var replaceText=arg+'='+arg_val; \n"); 142 sb.append(" if(url.match(pattern)){ \n"); 143 sb.append(" var tmp='/('+ arg+'=)([^&]*)/gi'; \n"); 144 sb.append(" tmp=url.replace(eval(tmp),replaceText); \n"); 145 sb.append(" return tmp; \n"); 146 sb.append(" }else{ \n"); 147 sb.append(" if(url.match('[\\?]')){ \n"); 148 sb.append(" return url+'&'+replaceText; \n"); 149 sb.append(" }else{ \n"); 150 sb.append(" return url+'?'+replaceText; \n"); 151 sb.append(" } \n"); 152 sb.append(" } \n"); 153 sb.append(" return url+'\\n'+arg+'\\n'+arg_val; \n"); 154 sb.append("} \n"); 155 sb.append("$('[value="+currentPage+"]').css({'background':'red'}); \n"); 156 sb.append("</script>\n"); 157 sb.append(" "); 158 sb.append("<input type='text' value="+currentPage+" id='inputPage' style='width:40px'>\n"); 159 sb.append("<input type='button' value='搜索' onclick='inputPage("+lastPage+")'>\n"); 160 this.pageStyle = sb.toString(); 161 } 162 public PageUtil() { 163 super(); 164 } 165 public String getPage() { 166 return page; 167 } 168 public void setPage(String page) { 169 this.page = page; 170 } 171 public int getPageSize() { 172 return pageSize; 173 } 174 public void setPageSize(int pageSize) { 175 this.pageSize = pageSize; 176 } 177 public int getCount() { 178 return count; 179 } 180 public void setCount(int count) { 181 this.count = count; 182 } 183 public int getPrevPage() { 184 return prevPage; 185 } 186 public void setPrevPage(int prevPage) { 187 this.prevPage = prevPage; 188 } 189 public int getNextPage() { 190 return nextPage; 191 } 192 public void setNextPage(int nextPage) { 193 this.nextPage = nextPage; 194 } 195 public int getCurrentPage() { 196 return currentPage; 197 } 198 public void setCurrentPage(int currentPage) { 199 this.currentPage = currentPage; 200 } 201 public int getLastPage() { 202 return lastPage; 203 } 204 public void setLastPage(int lastPage) { 205 this.lastPage = lastPage; 206 } 207 public int getStartIndex() { 208 return startIndex; 209 } 210 public void setStartIndex(int startIndex) { 211 this.startIndex = startIndex; 212 } 213 public String getPageStyle() { 214 return pageStyle; 215 } 216 public void setPageStyle(String pageStyle) { 217 this.pageStyle = pageStyle; 218 } 219 public String getMohu() { 220 return mohu; 221 } 222 public void setMohu(String mohu) { 223 this.mohu = mohu; 224 } 225 @Override 226 public String toString() { 227 return "PageUtil [page=" + page + ", pageSize=" + pageSize + ", count=" + count + ", prevPage=" + prevPage 228 + ", nextPage=" + nextPage + ", currentPage=" + currentPage + ", lastPage=" + lastPage + ", startIndex=" 229 + startIndex + ", mohu=" + mohu + ", pageStyle=" + pageStyle + "]"; 230 } 231 232 }