首先在pom文件中添加包
<!--分页-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
然后再配置文件中加入配置,我这里的是springContext.xml,有的人是applicationContext.xml 反正就是有数据库信息的那个配置文件。
<!--分页配置-->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="reasonable">true</prop>
</props>
</property>
</bean>
然后就是修改service中的方法,我这里完成的是登录之后的第一步跳转,搜索数据库中的所有文章并显示在首页。
添加两个参数,page(当前页数),pagesize(当前页显示几条信息)
PageHelper.start是这个插件自带的方法。
public List<Page> findAll(Integer page,Integer pagesize) {
PageHelper.startPage(page,pagesize);
return pageMapper.findAll();
}
然后修改控制层
@RequestParam:GET和POST请求传的参数会自动转换赋值到@RequestParam 所注解的变量上
defaultValue:设置一个默认值
将从service得到的值传入PageInfo中,再将它放入model传到前端
public ModelAndView tiaozhuan(@RequestParam(defaultValue = "2")Integer page,@RequestParam(defaultValue = "6")Integer pagesize, Model model){
List<Page> list = pageService.findAll(page,pagesize);
PageInfo pi = new PageInfo(list);
ModelAndView mv = new ModelAndView();
mv.addObject("pagelists",pi);
mv.setViewName("/lunbo/findAll.do");
int size = list.size();
model.addAttribute("size",size);
model.addAttribute("pagelist",list);
return mv;
}
再修改一下前端就大功告成了。
<div class="box-tools pull-right">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/page/alllist.do?page=1&pagesize=6" aria-label="Previous">首页</a></li>
<li><a href="${pageContext.request.contextPath}/page/alllist.do.do?page=${pagelists.pageNum-1}">上一页</a></li>
<c:forEach begin="1" end="${pagelists.pages}" var="pagenum">
<li><a href="${pageContext.request.contextPath}/page/alllist.do.do?page=${pagenum}&pagesize=6">${pagenum}</a></li>
</c:forEach>
<li><a href="${pageContext.request.contextPath}/page/alllist.do.do?page=${pagelists.pageNum+1}">下一页</a></li>
<li><a href="${pageContext.request.contextPath}/page/alllist.do.do?page=${pagelists.pages}&pagesize=6" aria-label="Next">尾页</a></li>
</ul>
</div>
最终效果图