分页实现(分层SSM项目)
昨天的项目实现了登陆的功能,今天在昨天的基础上实现查询分页的功能,主要使用到了PageHelper。简要说一下分页的实现步骤:
1.导入jar包
首先在项目的pom.xml文件中添加依赖,导入jar包。
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.2</version>
</dependency>
2.配置MyBatis
告诉mybatis需要用到pagehelper,将配置文件添加到applicationContext.xml中的sqlsessionfactroybean。
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<prop key="helperDialect">mysql</prop>
<prop key="resonable">true</prop>
</props>
</property>
</bean>
</array>
</property>
3.ervice层实现查找所有用户
public List<UserInfo> findAllUser(int page, int size) {
PageHelper.startPage(page,size);
return iUserDao.findAllUser();
}
findAllUser需要在dao层中实现。
4.将查询结果装入到pageinfo中
在controller中实现获取结果。
@RequestMapping("/findAllUser.do")
public ModelAndView findAllUser(@RequestParam(defaultValue = "1")int page, @RequestParam(defaultValue = "2")int size){
List<UserInfo> list = iUserService.findAllUser(page,size);
PageInfo ps=new PageInfo(list);
ModelAndView mv = new ModelAndView();
mv.addObject("userinfos",ps);
mv.setViewName("user-list");
return mv;
}
5.jsp结果页面
aside.jsp:(提交参数给controller)
<li id="system-setting">
<a
href="${pageContext.request.contextPath}/user/findAllUser.do?page=1&size=2"> <i
class="fa fa-circle-o"></i> 用户管理
</a>
</li>
user-list.jsp:(根据结果展示用户信息)
<c:forEach var="user" items="${userinfos.list}">
<tr>
<td><input name="ids" type="checkbox"></td>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.password}</td>
<td class="text-center">
<a href="#" class="btn bg-olive btn-xs">更新</a>
<a href="#" class="btn bg-olive btn-xs">删除</a>
<a href="#" class="btn bg-olive btn-xs">添加角色</a>
</td>
</tr>
</c:forEach>
user-list.jsp:(翻页实现)
<div class="box-tools pull-right">
<ul class="pagination">
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=1&size=2" aria-label="Previous">首页</a></li>
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${userinfos.pageNum-1}&size=2">上一页</a></li>
<c:forEach begin="1" end= "${userinfos.pages}" var="pagenumber">
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${pagenumber}&size=2">${pagenumber}</a></li>
</c:forEach>
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${userinfos.pageNum+1}&size=2">下一页</a></li>
<li><a href="${pageContext.request.contextPath}/user/findAllUser.do?page=${userinfos.pages}&size=2" aria-label="Next">尾页</a></li>
</ul>
</div>
pages指总页数,pageNum指当前页数。
6.最终结果