0

hibernate を使用して、ページごとに指定されたレコードをプルするためのページネーションロジックを作成するためのアイデア/ロジックを提供できますか? 私が持っている情報は、その検索の合計ページ数です。1 ページあたり 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 に答える