11对分页的详细介绍

来源:互联网 发布:vb九九乘法表 编辑:程序博客网 时间:2024/06/05 08:06
分页几乎是每个网站都会使用到的技术。所以,在这里,我总结一下分页的方法。Pager.jsp页面<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ include file="/common/taglibs.jsp"%><!-- 分页的三个条件:1,需要得到查询表单的name,2,设置两个隐藏域,一个是当前页,一个是每页显示的条数。3,在需要分页的页面引入pager.jsp页面 --><!-- 在该分页的页面当中我们可以看出,分页与对象无关。 --><script type="text/javascript">function jump(p,s){ var oForm = document.searchForm ||document.forms[0]; oForm.elements["pager.currentPage"].value = p;oForm.elements["pager.pageSize"].value = s; oForm.submit(); }</script><table width="70%" style="font-size: 14px;font-family: 微软雅黑;"align="center"><tr><td style="float: left;">第<span style="color: red;"><s:propertyvalue="pager.currentPage" /> </span>/<s:property value="pager.pageCount" />页 共<s:property value="pager.total" />条</td><td style="float: right; "><s:if test="pager.currentPage eq 1">                          首页                          上一页                      </s:if><s:else><a href="javascript:jump(1,document.getElementById('pSize').value)">首页</a><ahref="javascript:jump(<s:property value="pager.currentPage-1"/>,document.getElementById('pSize').value)">上一页</a></s:else><s:if test="pager.currentPage eq pager.pageCount">                          下一页                          末页                      </s:if><s:else><ahref="javascript:jump(<s:property value="pager.currentPage+1"/>,document.getElementById('pSize').value)">下一页</a><ahref="javascript:jump(<s:property value="pager.pageCount"/>,document.getElementById('pSize').value)">末页</a></s:else>转到<input type="text" id="pPage" style="width:20px"value="<s:property value="pager.currentPage" />" />页<input type="button" value="跳转"onclick="jump(document.getElementById('pPage').value,document.getElementById('pSize').value)" />每页显示<s:select name="pager.pageSize" list="{3,5,10,15,20,50 }" id="pSize"onchange="jump(1,this.value)"></s:select></td></tr></table>Pager.javapackage com.hfxt.common;import java.util.ArrayList;import java.util.List;public class Pager<T> { // The number of current page size    private int currentPage;//当前页    // The number of records in one page    private int pageSize;//页面要显示多少条数据    // The total number of records in DB    private int total;//数据的总数    // The total number of page    private int pageCount;//页面的总数    // The number where we begin to get record    private int startRecord;    // Whether it has previous page    private boolean hasPreviousPage;    // Whether it has next page    private boolean hasNextPage;    // Whether it has only one page    private boolean onlyOnePage;    // The records of page designed    private List<T> pageRecords;//页面数据的集合    public int getCurrentPage() {        return currentPage;    }        /**     * 构造方法,只构造空页.     */    public Pager() {    this(1, 0, 3, new ArrayList());    }        /** * 构造方法,只构造空页. */public Pager(int currentPage,int pageSize) {this(currentPage, 0, pageSize, new ArrayList());}/** * 默认构造方法. *  * @param start *            本页数据在数据库中的起始位置 * @param totalSize *            数据库中总记录条数 * @param pageSize *            本页容量 * @param data *            本页包含的数据 */public Pager(int currentPage, int totalSize, int pageSize, List data) {this.pageSize = pageSize;this.currentPage = currentPage;this.total = totalSize;this.pageRecords = data;}    /**     * make sure the page is in the range of the total pages     *      * @param currentPage     *            current page     */    public void setCurrentPage(int currentPage) {        if (currentPage < 1) {            this.currentPage = 1;            return;        }        /*if (currentPage > getPageCount()) {            this.currentPage = getPageCount();            return;        }*/        this.currentPage = currentPage;    }    /**     * get page size     *      * @return page size number     */    public int getPageSize() {        return pageSize;    }    /**     * set page size     *      * @param pageSize     *            page size number     */    public void setPageSize(int pageSize) {        if (pageSize <= 0) {            this.pageSize = 1;        } else {            this.pageSize = pageSize;        }    }    /**     * get total records     *      * @return total record's number     */    public int getTotal() {        return total;    }    /**     * set total records     *      * @param totalRecords     *            total record number     */    public void setTotal(int totalRecords) {        this.total = totalRecords;    }    /**     * Get the total count of the page     *      * @return count number     */    public int getPageCount() {        // If there is no data in database.        if (total == 0) {            pageCount = 1;            return pageCount;        }        boolean isZero = total % pageSize == 0;        pageCount = total / pageSize;        pageCount = isZero ? pageCount : pageCount + 1;        return pageCount;    }    /**     * First record of one page     *      * @return start records     */    public int getStartRecord() {        startRecord = ((currentPage - 1) * pageSize);        return startRecord;    }    /**     * Whether has previous page     *      * @return if previous page's is exist,return true else not     */    public boolean isHasPreviousPage() {        hasPreviousPage = (currentPage == 1) ? false : true;        return hasPreviousPage;    }    /**     * Whether has next page     *      * @return if next page's is exist,return true else not     */    public boolean isHasNextPage() {        hasNextPage = (currentPage == getPageCount()) ? false : true;        return hasNextPage;    }    /**     * Whether is only one page     *      * @return if only one page,return true else not     */    public boolean isOnlyOnePage() {        onlyOnePage = ((getPageCount() == 1) ? true : false);        return onlyOnePage;    }        /**     * 查询到的所有的记录     * @return the pageRecords     */    public List<T> getPageRecords() {        return pageRecords;    }public void setPageRecords(List<T> pageRecords) {this.pageRecords = pageRecords;}}


 

原创粉丝点击