在我们读取数据库中的数据时,往往会因为数据量过大无法在一个页面中完整显示,这时就需要用到分页操作,可以使界面更加简洁又条理。下面介绍分页操作的实现:
1.导入插件pagehelper
这个插件可以方便地帮助我们完成分页的操作,利用里面的方法我们可以设置初始的页码和每一页显示数据的个数。但是在使用之前我们需要在pom中导入依赖关系:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2.在jsp页面中传递参数page(初始页码)和size(每页显示数据个数)
利用a标签的href属性传递,例如:
href="${pageContext.request.contextPath}/user/findAll.do?page=1&size=4"
这里设置初始页码是1,每页显示4个数据。
3.在service层的findAll方法中加入page和size参数,然后使用PageHelper.startPage(page,size);语句声明使用。再调用Dao层的方法,例如:
4.修改Controller层的结构体
将userInfo封装成pageInfo,例如:
5.在前台设置页面显示
在jsp页面中设置点击每个按钮显示的页码,pageInfo.pageNum是当前页码,pageInfo.pageNum-1就是上一页的页码,pageInfo.pageNum+1就是下一页页码,pageInfo.pages是尾页页码,将page置为1就是首页。例如:
6.在applicationContext中配置property
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
其中reasonable设置为true可以保证在尾页点击下一页不会报错。