搭建框架还是之前的方法,可以看前面的文章,这里直接在次基础上新增分页的功能。
1.首先是导入Jar包,在ssm-parent中的pom.xml文件中加入:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2.接着在调用方法时,传入page和size参数到方法中,前者表示将要显示的页面序号,后者表示每页的记录数。在aside.jsp中找到跳转到user-list的调用并改为:
<a
href="${pageContext.request.contextPath}/user/PagefindAll.do?page=1&size=5"> <i
class="fa fa-circle-o"></i> 用户管理
</a>
3.接着在Service层,执行具体代码之前使用方法Pagehelper.startPage(page,size),page和size通过函数参数传入,在controller层中,用PageInfo的构造方法将查询得到的List装入Pageinfos,并将它传入新页面。
这是user_list界面的代码:
<div class="box-tools pull-right">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/user/PagefindAll.do?page=1&size=5" aria-label="Previous">首页</a></li>
<li><a href="${pageContext.request.contextPath}/user/PagefindAll.do?page=${pageInfoslist.pageNum-1}&size=5">上一页</a></li>
<c:forEach begin="1" end="${pageInfoslist.pages}" var="pageNum">
<li><a href="${pageContext.request.contextPath}/user/PagefindAll.do?page=${pageNum}&size=5">${pageNum}</a></li>
</c:forEach>
<li><a href="${pageContext.request.contextPath}/user/PagefindAll.do?page=${pageInfoslist.pageNum+1}&size=5">下一页</a></li>
<li><a href="${pageContext.request.contextPath}/user/PagefindAll.do?page=${pageInfoslist.pages}&size=5" aria-label="Next">尾页</a></li>
</ul>
</div>
实现首页的跳转:调用重新调用controller层中的findAll函数,并令传入page的值为1,即可重现打开当前页面并令分页当前页为1。
实现尾页的跳转:调用重新调用controller层中的findAll函数,并令传入page的值为page的页数,即可重现打开当前页面并令分页当前页为尾页。
实现上/下一页的跳转:调用重新调用controller层中的findAll函数,并令传入page的值为当前页的减/加一,即可重现打开当前页面并令分页当前页为之前的上/下一页。
实现指定页的跳转:调用重新调用controller层中的findAll函数,并令传入page的值为选中的选项对应的值,即可重现打开当前页面并令分页当前页指定页。