记录能用到的轮子

1,分页导航

<ul>
                <%--如果当前页 > 1 , 就显示上一页--%>
                <c:if test="${requestScope.page.pageNo > 1}">
                    <li><a href="furnServlet?action=page&pageNo=${requestScope.page.pageNo - 1}">上一页</a></li>
                </c:if>
                <%--<li><a class="active" href="#">3</a></li>--%>
                <%--<li><a href="#">4</a></li>--%>
                <%--<li><a href="#">5</a></li>--%>
                <%--    显示所有的分页数, 先容易,再困难
                    老师思路: 先确定开始页数 begin 第1页
                            再确定结束页数 end 第pageTotalCount页
                    学生困惑:如果页数很多,怎么办? => 算法最多显示5页[这个规则可以由程序员决定.]
                            希望,小伙伴自己先想一想...=> 后面

                    老师分析
                    1. 如果总页数<=5, 就全部显示
                    2. 如果总页数>5, 按照如下规则显示(这个规则是程序员/业务来确定):
                    2.1 如果当前页是前3页, 就显示1-5
                    2.2 如果当前页是后3页, 就显示最后5页
                    2.3 如果当前页是中间页, 就显示 当前页前2页, 当前页 , 当前页后两页

                    这里的关键就是要根据不同的情况来初始化begin, end
                --%>
                <c:choose>
                    <%--如果总页数<=5, 就全部显示--%>
                    <c:when test="${requestScope.page.pageTotalCount <=5 }">
                        <c:set var="begin" value="1"/>
                        <c:set var="end" value="${requestScope.page.pageTotalCount}"/>
                    </c:when>
                    <%--如果总页数>5--%>
                    <c:when test="${requestScope.page.pageTotalCount > 5}">
                        <c:choose>
                            <%--如果当前页是前3页, 就显示1-5--%>
                            <c:when test="${requestScope.page.pageNo <= 3}">
                                <c:set var="begin" value="1"/>
                                <c:set var="end" value="5"/>
                            </c:when>
                            <%--如果当前页是后3页, 就显示最后5页--%>
                            <c:when test="${requestScope.page.pageNo > requestScope.page.pageTotalCount - 3}">
                                <c:set var="begin" value="${requestScope.page.pageTotalCount - 4}"/>
                                <c:set var="end" value="${requestScope.page.pageTotalCount}"/>
                            </c:when>
                            <%--如果当前页是中间页, 就显示 当前页前2页, 当前页 , 当前页后两页--%>
                            <c:otherwise>
                                <c:set var="begin" value="${requestScope.page.pageNo - 2}"/>
                                <c:set var="end" value="${requestScope.page.pageNo + 2}"/>
                            </c:otherwise>
                        </c:choose>
                    </c:when>
                </c:choose>
                <c:forEach begin="${begin}" end="${end}" var="i">
                    <%--如果i是当前页, 就使用class="active" 修饰--%>
                    <c:if test="${i == requestScope.page.pageNo}">
                        <li><a class="active" href="furnServlet?action=page&pageNo=${i}">${i}</a></li>
                    </c:if>
                    <c:if test="${i != requestScope.page.pageNo}">
                        <li><a href="furnServlet?action=page&pageNo=${i}">${i}</a></li>
                    </c:if>

                </c:forEach>
                <%--如果当前页 < 总页数 , 就显示下一页--%>
                <c:if test="${requestScope.page.pageNo < requestScope.page.pageTotalCount}">
                    <li><a href="furnServlet?action=page&pageNo=${requestScope.page.pageNo + 1}">下一页</a></li>
                </c:if>
                <li><a href="#">共 ${requestScope.page.pageTotalCount} 页</a></li>
            </ul>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值