• java中分页的实现


    page实体类:

    public class Page<T> {
    	private int perPageNum;// 每页的数据条数
    	private int pageNum;// 访问的哪一页
    	private int totalRecordsCount;// 总的数据条数
    	private int totalPageNum;// 总页数
    	private List<T> pageT;//每一页的所有实体数据,T为实体
    
    }

    调用实例:  

        // 分页查询
        public Page pageQuery(int pageNum) throws Exception {
            int perPageNum = 10;// 每一页显示的数量
            int totalRecordCount = schoolDaoImpl.schoolCount();// 总记录
            int totalPageCount = (totalRecordCount + perPageNum - 1) / perPageNum;// 总页数
            // 获得数据
            List<School> schools = schoolDaoImpl.getSpecifyPageData((pageNum - 1) * perPageNum, perPageNum);
    
    Page schoolPage
    = new Page(); schoolPage.setPageNum(pageNum); schoolPage.setPageT(schools); schoolPage.setPerPageNum(perPageNum); schoolPage.setTotalPageNum(totalPageCount); schoolPage.setTotalRecordsCount(totalRecordCount); return schoolPage; }

    JSP中的分页实现:ps:page由上方调用实例填充到request的结果

        <!-- 具体数据-->
        <table id="dynamic-table"
            class="table table-striped table-bordered table-hover">
            <thead>
                <tr>
                    <th>专业名称</th>
                    <th>专业代码</th>
                    <th>创建时间</th>
                </tr>
            </thead>
    
            <tbody>
                <c:forEach items="${page.pageT}" var="major">
                    <tr>
                        <td>${major.majorName}</td>
                        <td>${major.majorCode}</td>
                        <td>${major.createDate}</td>
                    </tr>
                </c:forEach>
            </tbody>
        </table>
    
        <!-- 数据下方的首页,第几页,尾页什么的-->
        <div class="center">
            第${page.pageNum}页/共${page.totalPageNum}页
            <c:if test="${page.pageNum>1}">
                <a
                    href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=1&schID=${jumpSchID}">首页</a>
                <a
                    href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${page.pageNum-1}&schID=${jumpSchID}">上一页</a>
            </c:if>
            <%-- 计算begin、end --%>
            <c:choose>
                <%-- 如果总页数不足10页,那么把所有的页数都显示出来! --%>
                <c:when test="${page.pageNum <= 10 }">
                    <c:set var="begin" value="1" />
                    <c:set var="end" value="${page.totalPageNum}" />
                </c:when>
                <c:otherwise>
                    <%-- 当总页数>10时,通过公式计算出begin和end --%>
                    <c:set var="begin" value="${page.pageNum-5 }" />
                    <c:set var="end" value="${page.pageNum+4 }" />
                    <%-- 头溢出 --%>
                    <c:if test="${begin < 1 }">
                        <c:set var="begin" value="1" />
                        <c:set var="end" value="10" />
                    </c:if>
                    <%-- 尾溢出 --%>
                    <c:if test="${end > page.totalPageNum}">
                        <c:set var="begin" value="${page.totalPageNum - 9 }" />
                        <c:set var="end" value="${page.totalPageNum}" />
                    </c:if>
                </c:otherwise>
            </c:choose>
            <%-- 循环遍历页码列表 --%>
            <c:forEach var="i" begin="${begin }" end="${end }">
                <c:choose>
                    <c:when test="${i eq page.pageNum }">[${i }]</c:when>
                    <c:otherwise>
                        <a
                            href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${i}&schID=${jumpSchID}">[${i }]</a>
                    </c:otherwise>
                </c:choose>
    
            </c:forEach>
    
    
            <c:if test="${page.pageNum <page.totalPageNum }">
                <a
                    href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${page.pageNum+1}&schID=${jumpSchID}">下一页</a>
                <a
                    href="<c:url value="/school/schIncluMajorsPage"/>?pageNum=${page.totalPageNum}&schID=${jumpSchID}">尾页</a>
            </c:if>
        </div>
  • 相关阅读:
    ASP.NET 备份恢复SqlServer数据库
    ASP.NET MVC3.0 Razor 视图模板 语法
    ASP.NET 缓存
    代码生成框架
    C#中HashTable的用法
    C# 概念 委托和事件
    Web Service 系列 → Web Service 简介
    CDN 内容分发网络
    HarmonyOS开发者创新大赛
    #2020征文手表#【图解鸿蒙】多组示例演示三个样式的组合用法
  • 原文地址:https://www.cnblogs.com/SunAutumn/p/5623352.html
Copyright © 2020-2023  润新知