我在Web应用程序中使用了分页功能,效果很好。但是它显示了所有页面链接。在单击“下一步”按钮后,我只希望在分页中显示5页,在接下来的页面中显示。
我想要这样的东西
pagin.jsp
<nav aria-label="Page navigation example">
<ul class="pagination">
<c:url value="/list" var="first">
<c:param name="page" value="1" />
</c:url>
<c:url value="/list" var="prev">
<c:param name="page" value="${page-1}" />
</c:url>
<c:if test="${page > 1}">
<li class="page-item"><a class="page-link"
href="<c:out value="${first}" />">First</a></li>
<li class="page-item"><a class="page-link"
href="<c:out value="${prev}" />">Prev</a></li>
</c:if>
<c:forEach begin="${begin}" end="${end}" step="1" varStatus="i">
<c:choose>
<c:when test="${page == i.index}">
<li class="page-item"><span class="page-link"
style="background-color: blue">${i.index}</span></li>
</c:when>
<c:otherwise>
<c:url value="/list" var="url">
<c:param name="page" value="${i.index}" />
</c:url>
<li class="page-item"><a class="page-link"
href='<c:out value="${url}" />'>${i.index}</a></li>
</c:otherwise>
</c:choose>
</c:forEach>
<c:url value="/list" var="last">
<c:param name="page" value="${maxPages}" />
</c:url>
<c:url value="/list" var="next">
<c:param name="page" value="${page + 1}" />
</c:url>
<c:if test="${page + 1 <= maxPages}">
<li class="page-item"><a class="page-link"
href='<c:out value="${next}" />'>Next</a></li>
<li class="page-item"><a class="page-link"
href='<c:out value="${last}" />'>Last</a></li>
</c:if>
</ul>
</nav>
请告诉我该怎么做。
答案 0 :(得分:1)
我的问题解决了。我这样计算控制器的开始和结束。
int showpage = 5;
int maxpages = pagedListHolder.getPageCount();
int begin,end;
int lastcount = maxpages%showpage; // number of pages above maxpages % 5
int last = maxpages - lastcount;
if (page <= maxpages) {
if (page < showpage-2) {
begin = 1;
end = showpage;
System.out.println("condition 1");
modelAndView.addObject("begin", begin);
modelAndView.addObject("end", end);
}else if(page == maxpages){
begin = maxpages-showpage;
end = maxpages;
System.out.println("condition 2");
modelAndView.addObject("begin", begin);
modelAndView.addObject("end", end);
}
else if(page > maxpages - 3){
begin = page - 3;
end = maxpages;
System.out.println("condition 3");
modelAndView.addObject("begin", begin);
modelAndView.addObject("end", end);
} else {
int count = (page / showpage)+2;
begin = page - 2;
end = page + 3;
System.out.println("condition 4");
modelAndView.addObject("begin", begin);
modelAndView.addObject("end", end);
}
}