在ssm框架中实现分页查询,本次实现使用的是插件。
以下是分页查询步骤:
1、导jar包:在项目的pom.xml中导入jar包
<!-- 分页架包 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2、写配置文件:在项目的applicationContext.xml写入配置信息
<!--分页配置信息-->
<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、写service,传参
@Override
public List<User> findAllUser(int page,int size) {
//开始分页
PageHelper.startPage(page,size);
return userDao.findAllUser();
}
4、controller
@RequestMapping("findAllUser.do")
public ModelAndView findAllUser(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "4") int size){
//调用Service方法,得到查询结果
List<User> userList = userService.findAllUser(page,size);
//2数据传到分页
PageInfo pageInfo=new PageInfo(userList);
//为了进行返回值传递,需要把返回值封装到SpringMVC内置对象ModelAndView
ModelAndView mv=new ModelAndView();
mv.addObject("pageInfo",pageInfo);
mv.setViewName("user-list");
return mv;
}
5、user-list.jsp分页显示
<div class="box-tools pull-right">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=1&size=4" aria-label="Previous">首页</a></li>
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${pageInfo.pageNum-1}&size=4">上一页</a></li>
<c:forEach begin="1" end="${pageInfo.pages}" var="pageNum">
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${pageNum}&size=4">${pageNum}</a></li>
</c:forEach>
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${pageInfo.pageNum+1}&size=4">下一页</a></li>
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${pageInfo.pages}&size=4" aria-label="Next">尾页</a></li>
</ul>
</div>
6、分页结果