`
wangzi6hao
  • 浏览: 208883 次
  • 性别: Icon_minigender_1
  • 来自: sdf
社区版块
存档分类
最新评论

java分页

    博客分类:
  • Java
阅读更多
import java.util.List;





/**


* @author Administrator


*


*


*/


public class PageControl {


    private int prevPage = 1;


    private int nextPage = 1;


    private int pageCount = 1;


    private int pageNum = 1;


    private int recordCount = 0;


    private int pageSize = 20;


    private List list;


    private int start;





    public PageControl() {


    }





    /**


    * @param li:列表


    * @param count:记录集总数


    * @param page:当前页


    * @param s


    * @param ps


    */


    public PageControl(List li, int count, int page, int s, int ps) {


        this.recordCount = count;


        this.pageNum = page;


        if (page < 1) {


            this.pageNum = 1;


        }


        this.pageSize = ps;


        adjust();


        this.list = li;


        this.start = s;


    }





    private void adjust() {


        pageCount = (int) ((float) recordCount / pageSize + 0.99);


        pageNum = (pageNum > 0 ? pageNum : 1);


        pageNum = (pageNum > pageCount ? pageCount : pageNum);


        nextPage = (pageNum < pageCount ? (pageNum + 1) : pageCount);


        prevPage = (pageNum > 1 ? (pageNum - 1) : 1);


    }





    /**


    * 返回分页控制器


    */


    public String getShowPage() {


        StringBuffer sb = new StringBuffer("\n");


        if (pageCount <= 1) {


            sb.append("<input type=hidden name=ipage>");


            return sb.toString();


        }


        if (pageNum > 1) {


            sb.append("<a href=\"javascript:GoPage(1)\">");


            sb


                    .append("<img src=\"/images/firs_button.gif\" border=\"0\" valign=\"absbottom\"></a>&nbsp;&nbsp;");


            sb.append("<a href=\"javascript:GoPage(" + (pageNum - 1) + ")\">");


            sb


                    .append("<img src=\"/images/prev_button.gif\" border=\"0\" valign=\"absbottom\"></a>\n");


        }


        if (pageNum < pageCount) {


            sb.append("&nbsp;&nbsp;<a href=\"javascript:GoPage("


                    + (pageNum + 1) + ")\">");


            sb


                    .append("<img src=\"/images/next_button.gif\" border=\"0\" valign=\"absbottom\"></a>&nbsp;&nbsp;");


            sb.append("<a href=\"javascript:GoPage(" + pageCount + ")\">");


            sb


                    .append("<img src=\"/images/last_button.gif\" border=\"0\" valign=\"absbottom\"></a>\n");


        }


        if (pageCount > 1) {


            sb.append("&nbsp;共" + recordCount + "条记录&nbsp;分" + pageCount


                    + "页&nbsp;每页" + pageSize + "条\n");


            sb


                    .append("&nbsp;当前第<select name=\"ipage\" onchange=\"GoPage(this.value)\">\n");


            for (int i = 1; i <= pageCount; i++) {


                if (i == pageNum) {


                    sb.append("<option selected value=\"" + i + "\">" + i


                            + "</option>\n");


                } else {


                    sb.append("<option value=\"" + i + "\">" + i


                            + "</option>\n");


                }


            }


            sb.append("</select>页 \n");


        }


        return sb.toString();


    }





    public int getNextPage() {


        return nextPage;


    }





    public int getFirstNo() {


        return (pageNum - 1) * pageSize + 1;


    }





    /**


    * 每一页大小


    *


    * @return


    */


    public int getPageSize() {


        return pageSize;


    }





    public int getPageCount() {


        return pageCount;


    }





    /**


    * 当前第几页页面


    *


    * @return


    */


    public int getPageNum() {


        return pageNum;


    }





    public int getPrevPage() {


        return prevPage;


    }





    /**


    * 总记录数


    *


    * @return


    */


    public int getRecordCount() {


        return recordCount;


    }





    public void setPageSize(int i) {


        pageSize = i;


    }





    public List getList() {


        return list;


    }





    /**


    * 从第几条开始


    *


    * @return


    */


    public int getStart() {


        return start;


    }





    /**


    * 输出分页显示的结果.


    *


    * @param pageNum


    *            当前页面


    * @param recordCount


    *            所有结果


    * @param pageSize


    *            一页显示的多少


    * @param pageCountSize


    *            前后跳页的多少


    * @param linkpageurl


    *            连接页面的 URL 字符串


    * @return 分页结果的字符串.


    */


    public String paging(int pageCountSize, String linkpageurl) {


        int PageCount = -1; // 页面总数


        String LinkPageName = linkpageurl;


        String LinkText = "";


        int StartPage;


        int TempPage;


        int TempPageCount;


        TempPage = (pageNum - 1) % pageCountSize; //


        StartPage = pageNum - TempPage; //


        TempPageCount = recordCount % pageSize;


        if (TempPageCount == 0) {


            PageCount = recordCount / pageSize;


        } else {


            PageCount = (recordCount / pageSize) + 1; //


        }


        String txtPrev = "前" + pageCountSize + "页";


        String txtNext = "后" + pageCountSize + "页";


        String txtStart = "首页";


        String txtEnd = "末页";


        // 首页


        // if (StartPage - 1 > 0) {


        if (pageNum - 1 > 0) {


            LinkText += "<a href='" + LinkPageName + "&page=1' title='到首页'>"


                    + txtStart + "</a>";


        } else {


            // LinkText += txtStart;


            LinkText += "";


        }


        // 到前10页


        if (StartPage - 1 > 0) {


            LinkText += "<a href='" + LinkPageName + "&page=" + (StartPage - 1)


                    + "' title='到第" + pageCountSize + "页'>" + txtPrev + "</a>";


        } else {


            // LinkText += txtPrev;


            LinkText += "";


        }


        for (int i = StartPage; i < StartPage + pageCountSize; i++) {


            if (i < PageCount + 1) {





                if (i == pageNum) {


                    LinkText += "<a class='currentlyPage' href='"


                            + LinkPageName + "&page=";


                    LinkText += i + "' title='" + i + "页'>";


                    LinkText += i;


                } else {


                    LinkText += "<a href='" + LinkPageName + "&page=";


                    LinkText += i + "' title='" + i + "页'>";


                    LinkText += i;


                }


                LinkText += "</a>";


            }


        }


        // 中间页面


        if (StartPage + pageCountSize - PageCount - 1 < 0) {


            LinkText += "<a href='" + LinkPageName + "&page="


                    + (StartPage + pageCountSize) + "' title='到第"


                    + pageCountSize + "页'>" + txtNext + "</a>";


        } else {


            // LinkText += txtNext;


            LinkText += "";


        }


        // 最后一页


        // if (StartPage + pageCountSize <= PageCount) {


        if (pageNum < PageCount) {


            LinkText += "<a href='" + LinkPageName + "&page=" + PageCount


                    + "' title='最后一页'>" + txtEnd + "</a>";


        } else {


            // LinkText += txtEnd;


            LinkText += "";


        }


        if(recordCount < pageSize)


            LinkText = "";


        return LinkText;


    }


}

 调用例子

public PageControl getPageControl(String sql, int page, int pageSize)
            throws SQLException {
        List list = new ArrayList();
        int start = 0;
        int pageCount = 0;
        int recordCount = 0;
        Connection conn = null;
        PreparedStatement prepare = null;
        ResultSet rs = null;
        ConnectionPool pool = ConnectionPool.getInstance();
        try {
            conn = pool.getConnection();
            prepare = conn.prepareStatement(sql);
            rs = prepare.executeQuery();
            rs.last();
            if (rs.isLast()) {
                recordCount = rs.getRow();
            }
            rs.beforeFirst();

            pageCount = (recordCount + pageSize - 1) / pageSize;
            if (page > pageCount)
                page = pageCount;
            start = (page - 1) * pageSize + 1;

            boolean bOk = true;
            if (start == 1)
                bOk = true;
            else
                bOk = rs.absolute(start - 1);

            int i = 1, j = 0;
            while (bOk && rs.next() && j < pageSize) {
                ContentInfoForm form = new ContentInfoForm();
                form.setId(rs.getLong(i));
                i++;
                form.setContentId(rs.getLong(i));
                i++;
                form.setContentTypeId(rs.getInt(i));
                i++;
                form.setBlogId(rs.getLong(i));
                i++;
                form.setBlogName(rs.getString(i));
                i++;
                form.setTitle(rs.getString(i));
                i++;
                form.setPublic(rs.getBoolean(i));
                i++;
                form.setReply(rs.getBoolean(i));
                i++;
                form.setBrowseNum(rs.getInt(i));
                i++;
                form.setReplyNum(rs.getInt(i));
                i++;
                form.setMainIndex(rs.getBoolean(i));
                i++;
                form.setSubIndex(rs.getBoolean(i));
                i++;
                form.setChoiceIndex(rs.getBoolean(i));
                i++;
                form.setRegDate(rs.getTimestamp(i));
                list.add(form);
                i = 1;
                j++;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
            } finally {
                try {
                    if (prepare != null) {
                        prepare.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    if (conn != null) {
                        pool.free(conn);
                    }
                }
            }
        }
        PageControl pcontrol = new PageControl(list, recordCount, page, start,
                pageSize);
        return pcontrol;
    }

 分页例子

            PageControl pControl = dao.getPageControl(sql.toString(), ipage, 20);
            List list = pControl.getList();
            String showPage = pControl.paging(10,
                    "/admin/contentTypeList.do?method=untype“;
            request.setAttribute("list", list);
            request.setAttribute("showPage", showPage);
            request.setAttribute("search", search);
            request.setAttribute("type", type);
 
<style>
/*---分页S---*/
#pagination_box {
    clear: both;
    overflow: hidden;
    height: 35px;
    text-align: center;
    margin-top: 10px;
    zoom:1;
    line-height: 35px;
}
#pagination_box a {
    border: 1px solid #BACBDD;
    margin-right: 2px;
    margin-left: 2px;
    padding-top: 2px;
    padding-right: 5px;
    padding-bottom: 2px;
    padding-left: 5px;
    overflow: hidden;
    font-family: "宋体";
}
#pagination_box a:link {
    color: #497098;
}
#pagination_box a:visited {
    color: #497098;
}
#pagination_box a:hover {
    color: #FFFFFF;
    background-color: #658CB4;
    text-decoration: none;
}
#pagination_box a:active {
    color: #497098;
}
#pagination_box .currentlyPage:link {
    color: #ffffff;
    background-color: #658CB4;
}
#pagination_box .currentlyPage:visited {
    color: #ffffff;
    background-color: #658CB4;;
}
#pagination_box .currentlyPage:hover {
    color: #ffffff;
    background-color: #658CB4;
}
#pagination_box .currentlyPage:active {
    color: #ffffff;
    background-color: #658CB4;
}
#pagination_box .PB_input {
    width: 20px;
    overflow: hidden;
    border: 1px solid #CCCCCC;
    vertical-align: middle;
}
#pagination_box .PB_but {
    cursor:hand;
    padding-left: 5px;
    vertical-align: middle;
    padding-bottom: 5px;
    margin-top:4px;
}
/*---分页E---*/
</style>
        <div id="pagination_box"><%=showPage %></div>
        <!--分页E-->
 
分享到:
评论
1 楼 fyboyz 2011-07-14  

相关推荐

Global site tag (gtag.js) - Google Analytics