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 + -
显示快捷键?