由于规定了用jsp技术和Mybatis,并要求实现分页页码的效果显示为前五后四(如下图,但当前页前有5页,后有4页,与百度搜索的分页效果一致)
代码如下:(代码可以直接粘贴使用,只要你的PageHelper插件的PageInfo返回的也是pageInfo这个变量名)
其中要注意的是JSTL的那些标签的嵌套使用要小心,就是在<c:when>标签里再次嵌套时,一定要加上<c:choose>标签
//实现前五后四的效果,这个很好理解,自己画个图按着步骤走就知道了
<c:choose>
<c:when test="${pageInfo.pages >= 10}">
<c:choose>
<c:when test="${pageInfo.pageNum > pageInfo.pages - 4}">
<c:set var="begin" value="${pageInfo.pages-9}"/>
<c:set var="end" value="${pageInfo.pages}"/>
</c:when>
<c:when test="${pageInfo.pageNum < 5}">
<c:set var="begin" value="1"/>
<c:set var="end" value="10"/>
</c:when>
<c:otherwise>
<c:set var="begin" value="${pageInfo.pageNum - 5}"/>
<c:set var="end" value="${pageInfo.pageNum + 4}"/>
</c:otherwise>
</c:choose>
</c:when>
<c:otherwise>
<c:set var="begin" value="1"/>
<c:set var="end" value="${pageInfo.pages}"/>
</c:otherwise>
</c:choose>
//遍历结果
<c:forEach begin="${begin}" end="${end}" var="curPage">
<c:choose>
<c:when test="${pageInfo.pageNum == curPage}">
<li class="active"><a href="${pageContext.request.contextPath}/permission/findAllPermission.do?page=${curPage}&pageSize=${pageInfo.pageSize}">${curPage}</a></li>
</c:when>
<c:otherwise>
<li><a href="${pageContext.request.contextPath}/permission/findAllPermission.do?page=${curPage}&pageSize=${pageInfo.pageSize}">${curPage}</a></li>
</c:otherwise>
</c:choose>
</c:forEach>