一点都不萌的博主来水了,哈哈。
今天给大家介绍一下分页插件pageHelper的使用
首先我用的是maven项目,单纯的是一个顾客的增删改查
下面这是pageheilper的maven依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.3</version>
</dependency>
下来给大家说一下配置
<property name="typeAliasesPackage" value="pojo;vo"></property>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageHelper">
<property name="properties">
<value>
dialect=mysql
</value>
</property>
</bean>
</array>
</property>
我是在spring的配置文件中配置的,如果想在SpringMvc中配置的,大家可以上网查一查,这里我就不细说了。
配置完之后就可以去写查询的方法了,博主使用的springmvc,所以就写了一个list.action
核心代码如下:
int num = 1;
String page = request.getParameter("page");
System.out.println(page);
if (page != null && !"".equals(page)) {
num = Integer.parseInt(page);
}
//开始分页
PageHelper.startPage(num, size);
List<Customer> list = customerService.findCustomerByVo(vo);
PageInfo<Customer> pagehelper=new PageInfo<Customer>(list,size);
model.addAttribute("pagehelper",pagehelper);
调用PageHeiper的startPage方法,这个方法有两个参数,第一个是页数,第二个是每页展示的条数
紧跟着startPage方法下面的就是你的查询方法,它自动帮你计算分页
之后将从数据库查询的数据返回至jsp页面
查询写完了,下来我们该使用它的分页了
下面是我参照网上的代码写的一个分页jsp,使用的前端框架是bootstrapt
<div class="row">
<%--文字信息--%>
<div class="col-md-6">
当前${pagehelper.pageNum}页,共有${pagehelper.pages}页,共有${pagehelper.total}条记录
</div>
<%--分页导航信息--%>
<div class="col-md-6">
<nav aria-label="Page navigation">
<ul class="pagination">
<c:if test="${pagehelper.pageNum==1}">
<li class="disabled"><a href="javascript:queryAllPerson(1);">首页</a></li>
</c:if>
<c:if test="${pagehelper.pageNum!=1}">
<li><a href="javascript:queryAllPerson(1);">首页</a></li>
</c:if>
<c:if test="${pagehelper.hasPreviousPage}">
<li>
<a href="javascript:queryAllPerson(${pagehelper.pageNum-1});" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
</c:if>
<c:forEach items="${pagehelper.navigatepageNums}" var="pageNum">
<c:if test="${pageNum == pagehelper.pageNum}">
<li class="active"><a href="javascript:queryAllPerson(${pageNum});">${pageNum}</a></li>
</c:if>
<c:if test="${pageNum != pagehelper.pageNum}">
<li><a href="javascript:queryAllPerson(${pageNum});">${pageNum}</a></li>
</c:if>
</c:forEach>
<c:if test="${pagehelper.hasNextPage}">
<li>
<a href="javascript:queryAllPerson(${pagehelper.pageNum+1});" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</c:if>
<c:if test="${pagehelper.pageNum==pagehelper.pages}">
<li class="disabled"><a href="javascript:queryAllPerson(${pagehelper.pages});">末页</a></li>
</c:if>
<c:if test="${pagehelper.pageNum!=pagehelper.pages}">
<li><a href="javascript:queryAllPerson(${pagehelper.pages});">末页</a></li>
</c:if>
</ul>
</nav>
</div>
</div>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/bootstrap.min.js"></script>
大家可以注意回到首页方法我的参数是数值1,因为我试了pagehelper的firstpage之后,他回到的并不是第一页,所以我就没有使用,想了解的大家可以自行测试
然后把这个jsp页面引入到你的数据页面
<div class="col-md-12 text-right" >
<%@ include file="pageHelper2.jsp"%> <!-- 分页的插件-->
</div>
大家注意我的这个分页操作的方法有一个queryAllperson的函数
所以大家要在自己的数据页面添加这么一个函数
<script type="text/javascript">
function queryAllPerson(pageNum) {
$("#pagehelper").load("${pageContext.request.contextPath }/customer/list.action?page=" + pageNum);
}
</script>
可以看出,我是发送请求之后将这个页面刷新,所以大家要在自己的页面中加上一个id为
pagehelper的div标签
我的页面是这样定义的
<body>
<div id="pageheiper>
页面内容
</div>
</body>
这样就能保证整个页面刷新,而不是局部刷新。好了到了这里,就算大功告成了。
下面贴出我的页面一张。
怎么样,还不赖吧