1.导入PageHelper jar包,在父工程项目下的的pom.xml中加入以下依赖,可以使用右侧Maven刷新下(idea中)
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2.在控制层下的applicationContext.xml中加入PageHelper的配置信息
<!-- 3.配置SqlSessionFactory对象 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
<!-- 扫描bean包 使用别名 -->
<property name="typeAliasesPackage" value="edu.whut.bean"></property>
<!--配置加载映射文件 UserMapper.xml-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
<!--配置pagehelper-->
<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>
</bean>
3.在服务层的实现部分设置startPage
public List<UserInfo> listAll(int page,int size) {
PageHelper.startPage(page,size);
return userDao.listAll();
}
4.在控制层中,将查询到的结果集交给PageInfo,同时设置默认的页数和大小
@RequestMapping("listAll.do")
public ModelAndView listAll(@RequestParam(value = "page",defaultValue = "1") int page,
@RequestParam(value = "size",defaultValue = "5") int size){
List<UserInfo> users = userService.listAll(page,size);
PageInfo pageInfo = new PageInfo(users);
ModelAndView mv = new ModelAndView();
mv.addObject("infos",pageInfo);
mv.setViewName("user-list");
return mv;
}
5.在相应的显示jsp中实现下一页等跳转,其中infos是在相应的控制层中保存的查出的结果集 mv.addObject(“infos”,pageInfo);
(ps:如果控制层中不使用ModelAndView,而是使用url字符串进行控制跳转,可以使用Model进行数据存储和传递)
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/user/listAll.do?page=1&size=5" aria-label="Previous">首页</a></li>
<li><a href="${pageContext.request.contextPath}/user/listAll.do?page=${infos.pageNum-1}&size=5">上一页</a></li>
<c:forEach begin="1" end="${infos.pages}" var="pageNum">
<li><a href="${pageContext.request.contextPath}/user/listAll.do?page=${pageNum}&size=5">${pageNum}</a></li>
</c:forEach>
<li><a href="${pageContext.request.contextPath}/user/listAll.do?page=${infos.pageNum+1}&size=5">下一页</a></li>
<li><a href="${pageContext.request.contextPath}/user/listAll.do?page=${infos.lastPage}&size=5" aria-label="Next">尾页</a></li>
</ul>