0

任何人都可以提供一些想法/逻辑来编写页面的分页逻辑,以每页提取指定的记录,其使用 hibernate 提取记录精细表单数据库。我拥有的信息是该搜索的总页数 - 每页 10 条记录,我也收到了上一页和下一页的页码(编写逻辑没问题,我需要做的就是提取该信息并填充。我是也得到了我在哪个页面上的信息。我只能显示 10 个页面,如下所示

<previous 1 |2 |3 | 4| 5 | 6 | 7 | 8 | 9 | 10 next>

假设总页数为 15,当用户点击最后 10 页时,它需要像这样显示

<previous 2 |3 |4 |5 |6 |7 |8 |9 |10 |11 next> 

这是我的jsp

<c:forEach var="status1" items="${list1}">
                                        <c:set var="wins" ><fmt:parseNumber type="number" value="${status1.noOfPages}" /></c:set>
                                        <c:set var="wins1" ><fmt:parseNumber type="number" value="${status1. currentpage}" /></c:set>
                                        <%int i = 0;%>
                                        <%int k = 0;%>
                                        <%int l = 1;%>
                                        <c:choose>
                                            <c:when test="${wins1 eq 1}">
                                                <a style="font-size: 18px;" href="#">[First]</a>
                                            </c:when>
                                            <c:otherwise>
                                                <a style="font-size: 18px;" href=LibraryBookList.do?pageIndex=<%=l%>>[First]</a>
                                            </c:otherwise>
                                        </c:choose>
                                        <c:choose>
                                            <c:when test="${wins1 eq 1}">
                                                <a href="#">[Previous]</a>
                                            </c:when>
                                            <c:otherwise>
                                                <a href="LibraryBookList.do?pageIndex=${wins1-1}">[Previous]</a>
                                            </c:otherwise>
                                        </c:choose>
                                        <c:forEach begin="1" end="${wins}" varStatus="loop">
                                            <a style="font-size: 18px;" href=LibraryBookList.do?pageIndex=<%=++k%>><%=++i%></a>
                                        </c:forEach>
                                        <c:choose>
                                            <c:when test="${wins1 eq wins}">
                                                <a href="#">[Next]</a>
                                            </c:when>
                                            <c:otherwise>
                                                <a href="LibraryBookList.do?pageIndex=${wins1+1}">[Next]</a>
                                            </c:otherwise>
                                        </c:choose>
                                        <c:choose>
                                            <c:when test="${wins1 eq wins}">
                                                <a style="font-size: 18px;" href="#"/>>[Last]</a>
                                            </c:when>
                                            <c:otherwise>
                                                <a style="font-size: 18px;" href=LibraryBookList.do?pageIndex=<c:out value="${wins}"/>>[Last]</a>
                                            </c:otherwise>
                                        </c:choose>
                                    </c:forEach>
4

3 回答 3

0

我尝试过一次我尝试过的解决方案:

<%--For displaying Previous link except for the 1st page --%>
    <c:if test="${currentPage != 1}">
        <td><a href="employee.do?page=${currentPage - 1}">Previous</a></td>
    </c:if>

    <%--For displaying Page numbers.
    The when condition does not display a link for the current page--%>
    <table border="1" cellpadding="5" cellspacing="5">
        <tr>
            <c:forEach begin="1" end="${noOfPages}" var="i">
                <c:choose>
                    <c:when test="${currentPage eq i}">
                        <td>${i}</td>
                    </c:when>
                    <c:otherwise>
                        <td><a href="employee.do?page=${i}">${i}</a></td>
                    </c:otherwise>
                </c:choose>
            </c:forEach>
        </tr>
    </table>

    <%--For displaying Next link --%>
    <c:if test="${currentPage lt noOfPages}">
        <td><a href="employee.do?page=${currentPage + 1}">Next</a></td>
    </c:if>

我希望我的解决方案对您有所帮助。

于 2013-11-05T07:06:23.900 回答
0

如果您有权访问所有必填字段,例如 pageNo、NoOfRows 以显示在每个页面中。每次用户单击任何页码时,您只需在服务器端休眠条件中使用以下逻辑。

criteria.setFirstResult((this.page - 1) * this.rows);
criteria.setMaxResults(this.rows.intValue());       
this.searchResults = criteria.list();
于 2013-11-05T07:07:22.030 回答
0

我这样做了,它在 Oracle ATG Commerce 中也能正常工作。

<fmt:parseNumber var="totalPages" integerOnly="true" type="number" value="${totalOrdersCount/howMany}" />
                            <fmt:parseNumber var="stNo" integerOnly="true" type="number" value="1" />
                            <c:if test="${pgNo > 5 }">
                                <fmt:parseNumber var="x" integerOnly="true" type="number" value="${(pgNo%5)}" />
                                <fmt:parseNumber var="y" integerOnly="true" type="number" value="${(pgNo/5)-1}" />
                                <fmt:parseNumber var="stNo" integerOnly="true" type="number" value="${1+(y*5)+x}" />
                            </c:if>
                            <fmt:parseNumber var="endNo" integerOnly="true" type="number" value="${stNo+5-1}" />
                            <c:if test="${endNo >= totalPages}">
                                <fmt:parseNumber var="endNo" integerOnly="true" type="number" value="${totalPages+1}" />
                            </c:if>
                            <div class="grid-footer">
                                <div class="pagination help-main-pagination product-pagination">
                                    <ul class="pull-right">
                                        <c:if test="${(pgNo - 1) >= 1}">
                                            <li><a class="prev control" href="/lwoms/list/index.jsp?pgNo=${pgNo - 1}">Prev</a></li>
                                        </c:if>
                                         <c:forEach begin="${stNo}" end="${endNo}" var="i">
                                        <%--    <li><a class="active" href="/lwoms/list/index.jsp?pgNo=<c:out value="${i}"/>"><c:out value="${i}"/></a></li> --%>
                                            <c:choose>
                                                <c:when test="${pgNo eq i}">
                                                    <li><a class="active" href="/lwoms/list/index.jsp?pgNo=<c:out value="${i}"/>"><c:out value="${i}"/></a></li>
                                                </c:when>
                                                <c:otherwise>
                                                    <li><a href="/lwoms/list/index.jsp?pgNo=<c:out value="${i}"/>"><c:out value="${i}"/></a></li>
                                                </c:otherwise>
                                            </c:choose>
                                        </c:forEach>
                                        <c:if test="${(pgNo + 1) <= totalPages}">
                                            <li><a class="next control" href="/lwoms/list/index.jsp?pgNo=${pgNo + 1}">Next</a></li>
                                        </c:if>
                                    </ul>
                                </div>
                            </div>

希望这有帮助!

于 2014-01-24T13:54:42.837 回答