paginator.java
来自「cwbbs 云网论坛源码」· Java 代码 · 共 310 行
JAVA
310 行
package cn.js.fan.db;import javax.servlet.http.*;import cn.js.fan.util.*;import cn.js.fan.web.Global;import cn.js.fan.web.SkinUtil;import com.cloudwebsoft.framework.util.LogUtil;public class Paginator implements java.io.Serializable { public long total = 0; public int pageSize = 20; public int curPage = 1; public int totalpages = 0; public int pagenumbegin = 0; public int pagenumend = 0; public int numperpage = 10; public int totalpagenumblock = 0; public int curpagenumblock = 0; public Paginator(HttpServletRequest request) { getCPage(request); } public Paginator(HttpServletRequest request, long total, int pagesize) { getCPage(request); init(total, pagesize); } public void init(long total, int pagesize) { this.total = total; this.pageSize = pagesize; totalpages = (int) Math.ceil((double) total / pagesize); if (curPage > totalpages) curPage = totalpages; if (curPage <= 0) curPage = 1; } public long getTotal() { return total; } public void setTotal(long t) { this.total = t; } public int getPageSize() { return pageSize; } public void setPageSize(int p) { this.pageSize = p; } public int getTotalPages() { return totalpages; } public int getCurrentPage() { return curPage; } public int getCurPage() { return curPage; } public int getCPage(HttpServletRequest request) { if (request==null) return 1; String strcurpage = StrUtil.getNullStr(request.getParameter("CPages")); if (!StrUtil.isNumeric(strcurpage)) { curPage = 1; } else { try { curPage = Integer.parseInt(strcurpage); if (curPage <= 0) curPage = 1; } catch (Exception e) { LogUtil.getLog(getClass()).error("getCPage:" + StrUtil.trace(e)); curPage = 1; } } return curPage; } public void intpagenum() { if (totalpages == 0) { pagenumbegin = 0; pagenumend = 0; return; } totalpagenumblock = (int) totalpages / numperpage; if (totalpages % numperpage > 0) totalpagenumblock += 1; curpagenumblock = (int) (curPage / numperpage); if (curPage % numperpage > 0) curpagenumblock += 1; pagenumbegin = (curpagenumblock - 1) * numperpage + 1; if (pagenumbegin == 0) pagenumbegin = 1; if (totalpagenumblock == curpagenumblock) pagenumend = totalpages; else pagenumend = pagenumbegin + numperpage - 1; } public String getPageBlock(HttpServletRequest request, String url) { return getPageBlock(request, url, ""); } public String getPageStatics(HttpServletRequest request) { String page = StrUtil.format(SkinUtil.LoadString(request, "page_statics"), new Object[] {"" + getTotal(), "" + getPageSize(), "" + getCurrentPage(), "" + getTotalPages()}); return page; } public String LoadString(HttpServletRequest request, String key) { return SkinUtil.LoadString(request, "res.cn.js.fan.db.Paginator", key); } public String getPageBlock(HttpServletRequest request, String url, String pre) { intpagenum(); if (pagenumbegin == 0) return ""; StringBuffer sb = new StringBuffer(200); if (curpagenumblock > 1) { sb.append("<a title='" + LoadString(request, "previous") + "' href=\"" + url + "&CPages=" + (pagenumbegin - 1) + "\">" + "<<" + "</a> "); } for (int i = pagenumbegin; i <= pagenumend; i++) { if (i == curPage) sb.append(i + " "); else sb.append("[<a href=\"" + url + "&CPages=" + i + "\">" + i + "</a>] "); } if (curpagenumblock < totalpagenumblock) { sb.append("<a title='" + LoadString(request, "after") + "' href=\"" + url + "&CPages=" + (pagenumend + 1) + "\">" + ">>" + "</a>"); } sb.append("<input name=\"" + pre + "pageNum\" type=\"text\" size=\"2\" style=\"width:30px\" onKeyDown=\"" + pre + "page_presskey(this.value)\">"); sb.append("<input type=\"button\" name=\"GO\" value=\"GO\" onClick=\"" + pre + "changepage(" + pre + "pageNum.value)\">"); sb.append("<script language='javascript'>\n"); sb.append("<!--\n"); sb.append("function " + pre + "changepage(num)\n"); sb.append("{\n"); sb.append("window.location.href=\"" + url + "&CPages=\"+num;\n"); sb.append("}\n"); sb.append("function " + pre + "page_presskey(num) {\n"); sb.append("if (window.event.keyCode==13) {\n"); sb.append(pre + "changepage(num);\nwindow.event.cancelBubble=true;"); sb.append("}\n"); sb.append("}\n"); sb.append("//-->\n"); sb.append("</script>\n"); return sb.toString(); } public String getCurPageBlock(String url) { return getCurPageBlock(url, ""); } public String getCurPageBlock(String url, String pre) { intpagenum(); if (pagenumbegin == 0) return ""; StringBuffer sb = new StringBuffer(200); if (curpagenumblock > 1) { sb.append("<a title='往前' href=\"" + url + "&CPages=" + (pagenumbegin - 1) + "\">" + "<<" + "</a> "); } for (int i = pagenumbegin; i <= pagenumend; i++) { if (i == curPage) sb.append(i + " "); else sb.append("[<a href=\"" + url + "&CPages=" + i + "\">" + i + "</a>] "); } if (curpagenumblock < totalpagenumblock) { sb.append("<a title='往后' href=\"" + url + "&CPages=" + (pagenumend + 1) + "\">" + ">>" + "</a>"); } sb.append("<input name=\"" + pre + "pageNum\" type=\"text\" size=\"2\" style=\"width:30px\" onKeyDown=\"" + pre + "page_presskey(this.value)\">"); sb.append("<input type=\"button\" name=\"GO\" value=\"GO\" onClick=\"" + pre + "changepage(" + pre + "pageNum.value)\">"); sb.append("<script language='javascript'>\n"); sb.append("<!--\n"); sb.append("function " + pre + "changepage(num)\n"); sb.append("{\n"); sb.append("window.location.href=\"" + url + "&CPages=\"+num;\n"); sb.append("}\n"); sb.append("function " + pre + "page_presskey(num) {\n"); sb.append("if (window.event.keyCode==13) {\n"); sb.append(pre + "changepage(num);\nwindow.event.cancelBubble=true;"); sb.append("}\n"); sb.append("}\n"); sb.append("//-->\n"); sb.append("</script>\n"); return sb.toString(); } public String getCurPageBlock(HttpServletRequest request, String url) { return getCurPageBlock(request, url, ""); } public String getCurPageBlock(HttpServletRequest request, String url, String pre) { intpagenum(); if (pagenumbegin == 0) return ""; String rootpath = Global.getRootPath(); StringBuffer sb = new StringBuffer(200); sb.append( "<table border=\"0\" cellSpacing=\"1\" cellPadding=\"0\" class='table_page'>"); sb.append("<tr align=middle>"); sb.append("<td class=table_page_title title='" + LoadString(request, "topic_count") + "'>" + total + "</td>"); sb.append("<td class=table_page_title title='" + LoadString(request, "page_count") + "'>" + pageSize + "</td>"); sb.append("<td class=table_page_title >" + curPage + "/" + totalpages + LoadString(request, "page") + "</td>"); if (curpagenumblock > 1) sb.append("<td class=table_page_list><a href=\"" + url + "&CPages=1\"><img src=\"" + rootpath + "/images/first.gif\" alt=" + LoadString(request, "page_first") + " width=\"9\" height=\"8\" border=\"0\"></a></td>"); if (curpagenumblock > 1) { sb.append("<td><a href=\"" + url + "&CPages=" + (pagenumbegin - 1) + "\"><img src=\"" + rootpath + "/images/previous.gif\" alt=" + LoadString(request, "previous") + " width=\"8\" height=\"8\" border=\"0\"></a></td>"); } for (int i = pagenumbegin; i <= pagenumend; i++) { if (i == curPage) sb.append("<td class=table_page_cur>" + i + "</td>"); else sb.append("<td class=table_page_list><a href=\"" + url + "&CPages=" + i + "\">" + i + "</a></td>"); } if (curpagenumblock < totalpagenumblock) { sb.append("<td class=table_page_list><a href=\"" + url + "&CPages=" + (pagenumend + 1) + "\"><img src=\"" + rootpath + "/images/next.gif\" alt='" + LoadString(request, "after") + "' width=\"8\" height=\"8\" border=\"0\"></a></td>"); } if (curpagenumblock < totalpagenumblock) sb.append("<td class=table_page_list><a href=\"" + url + "&CPages=" + totalpages + "\"><img src=\"" + rootpath + "/images/last.gif\" alt='" + LoadString(request, "page_last") + "' width=\"9\" height=\"8\" border=0></a></td>"); sb.append("<td class=table_page_list><input name=\"pageNum" + pre + "\" type=\"text\" size=\"2\" style=\"width:30px\" onKeyDown=\"" + pre + "page_presskey(this.value)\"></td>"); sb.append("<td class=table_page_list><input type=\"button\" name=\"GO\" value=\"GO\" onClick=\"" + pre + "changepage(pageNum" + pre + ".value)\"></td>"); sb.append("</tr>"); sb.append("</table>"); sb.append("<script language='javascript'>\n"); sb.append("<!--\n"); sb.append("function " + pre + "changepage(num)\n"); sb.append("{\n"); sb.append("window.location.href=\"" + url + "&CPages=\"+num;\n"); sb.append("}\n"); sb.append("//-->\n"); sb.append("function " + pre + "page_presskey(num) {\n"); sb.append("if (window.event.keyCode==13) {\n"); sb.append(pre + "changepage(num)\n"); sb.append("}\n"); sb.append("}\n"); sb.append("</script>\n"); return sb.toString(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?