- 当前页 cur
- 最大页 maxPage
- 存放页面显示的页数 pages
<!-- 计算界面显示的页数 -->
<%
int cur= 1;
if (null != request.getAttribute("currentPage")) {
cur= (int) request.getAttribute("currentPage");
} else {
if (null != renderRequest.getPortletSession().getAttribute("currentPage")) {
cur= (int) renderRequest.getPortletSession().getAttribute("currentPage");
}
}
int maxPage = 0;
List<Integer> pages = new ArrayList<Integer>();
maxPage = count / pageCount;
if (count % pageCount != 0) {
maxPage++;
}
int start = cur - 2;
if (start <= 0) {
start += -start + 1;
}
int end = start + 3;
for (int i = start; i <= end; i++) {
if (i <= maxPage) {
pages.add(i);
}
}
%>
<!-- 这边存放当前页到后台 -->
<aui:form name="submitForm" action="${sendURL}">
<aui:input type="hidden" name="currentPage" id="currentPage"
value="${currentPage}" />
</aui:form>
<!-- 页面显示多页 -->
<nav>
<div class="paginates">
<ul class="pagination">
<c:if test="<%=cur != 0%>">
<c:if test="<%=cur > 1%>">
<li class="page-item"><a
href="javascript:gotoPage(<%=cur - 1%>)" class="page-link"><</a></li>
</c:if>
<c:forEach items="<%=pages%>" var="page">
<c:if test="${cur eq page}">
${page}
</c:if>
<c:if test="${cur ne page}">
<li class="page-item"><a
href="javascript:gotoPage(${page})" class="page-link">${page}</a></li>
</c:if>
</c:forEach>
<c:if test="<%=cur < maxPage%>">
<li class="page-item"><a
href="javascript:gotoPage(<%=cur + 1%>)" class="page-link">></a></li>
</c:if>
</c:if>
</ul>
</div>
</nav>
<!-- Js方法-->
function gotoPage(pageId) {
$("#<portlet:namespace />currentPage").val(pageId);
$("#<portlet:namespace/>submitForm").submit();
}
- 后台部分
获取前端传递来的当前页
int currentPage = 1;
if (!"".equals(ParamUtil.getString(renderRequest, CURRENTPAGE))) {
currentPage = Integer.parseInt(ParamUtil.getString(renderRequest, CURRENTPAGE));
} else {
if (null != session.getAttribute(CURRENTPAGE)) {
currentPage = (int) session.getAttribute(CURRENTPAGE);
}
}
由此可获得起始页startPage
一页显示几条由自己定义一个常量 showCount
int startPage = (currentPage -1) * showCount;
int endCount = currentPage * pageCount;
调用分页方法,即可完成显示。