分页前后端万能工具类

服务端代码

使用工具类可以大大提高我们的开发效率

 package com.web.commons;

import java.io.Serializable;
import java.util.List;
/**
 * 用于封装分页数据的对象
 * @author 
 * @param <E>
 *
 */
public class Page<E> implements Serializable {

    private static final long serialVersionUID = 3636538827502392743L;
    private int curPage;//当前页               *
    private int pageSize = 5;//每页显示的条数          *
    private int totalRecords;//总记录条数                *
    private int startIndex;//查询的开始记录索引          *
    private int totalPage;//总页数                 *
    private int prePage;//上一页                   *
    private int nextPage;//下一页                  *
    private List<E> records;//分好页的结果集(最多只能有5个对象)

    //用于显示页码的属性。我们的需求就是页面上最多只显示5个页码。当前页在允许的情况下永远居中
    private int beginPage;
    private int endPage;

    /**
     * 要想使用此类,必须提供2个参数
     * @param curtPage  当前页
     * @param totalRecords      总记录条数
     */
    public Page(int curPage, int totalRecords){
        this.curPage= curPage;
        this.totalRecords = totalRecords;

        //计算开始记录索引
        startIndex = (curPage - 1) * pageSize;

        //计算总页数
        totalPage = totalRecords%pageSize==0 ? totalRecords/pageSize : totalRecords/pageSize+1;

        //计算页号
        if(totalPage < 6){
            beginPage = 1;
            endPage = totalPage;
        }else{
            beginPage = curPage - 2;
            endPage= curPage + 2;
            if(beginPage < 1){
                beginPage = 1;
                endPage = beginPage + 5;
            }
            if(endPage > totalPage){
                endPage = totalPage;
                beginPage = endPage - 5;
            }
        }
    }

    public int getPrePage() {
        //计算上一页
        prePage = curPage - 1;
        if(prePage < 1){
            prePage = 1;
        }
        return prePage;
    }

    public int getNextPage() {
        //计算下一页
        nextPage = curPage+ 1;
        if(nextPage > totalPage){
            nextPage = totalPage;
        }
        return nextPage;
    }

    public int getCurPage() {
        return curPage;
    }

    public void setCurPage(int curPage) {
        this.curPage = curPage;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getTotalRecords() {
        return totalRecords;
    }

    public void setTotalRecords(int totalRecords) {
        this.totalRecords = totalRecords;
    }

    public int getStartIndex() {
        return startIndex;
    }

    public void setStartIndex(int startIndex) {
        this.startIndex = startIndex;
    }

    public int getTotalPage() {
        return totalPage;
    }

    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }

    public List<E> getRecords() {
        return records;
    }

    public void setRecords(List<E> records) {
        this.records = records;
    }

    public int getBeginPage() {
        return beginPage;
    }

    public void setBeginPage(int beginPage) {
        this.beginPage = beginPage;
    }

    public int getEndPage() {
        return endPage;
    }

    public void setEndPage(int endPage) {
        this.endPage = endPage;
    }

    public void setPrePage(int prePage) {
        this.prePage = prePage;
    }

    public void setNextPage(int nextPage) {
        this.nextPage = nextPage;
    }


}

前端代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <script type="text/javascript">
    function toPage(num) {
        //给表单中提供的一个隐藏域赋值
        document.getElementById("pageNum").value=num;
        //提交表单
        document.forms[0].submit();
    }
</script>
<style>
    div{
        margin-top:20px;
    }
    div a{
        border:1px solid lightblue;
        padding: 3px 3px 3px 3px;
        border-radius:25%;
    }

    a:active{
        border-left:2px solid lightblue;
        border-right:1px solid white;
        border-top:2px solid lightblue;
        border-bottom:1px solid white;
    }
</style>

<div id="pageDiv">
    <a href="javascript:toPage(1)">首页</a>
    <a href="javascript:toPage('${page.prePage }')">上一页</a>
    <s:iterator begin="%{page.beginPage}" end="%{page.endPage}" var="snum">
        <a href="javascript:topage('${snum}')">${snum}</a> 
    </s:iterator>
    <a href="javascript:toPage('${page.nextPage }')">下一页</a>
    <a href="javascript:toPage('${page.totalPage }')">末页</a>
    &nbsp;&nbsp;
    第<font color=red>${page.curPage }</font>页/共${page.totalPage}页
</div>

使用时,请使用静态包含

<%--分页开始 --%>
<%@include file="/jsp/commons/page.jsp" %>
<%--分页结束 --%>

猜你喜欢

转载自blog.csdn.net/luo609630199/article/details/80890866