分页操作
1、导入jar包
<!-- pageHelper:用于分页 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.6</version>
</dependency>
2、配置文件编写
spring配置文件编写
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注意其他配置 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!--使用下面的方式配置参数,一行配置一个 -->
<value>
params=value1
</value>
</property>
</bean>
</array>
</property>
</bean>
3、后端代码编写
- pageHelper插件实现
/**
* 分页操作-展示数据-pageHelper插件实现
* @return
*/
@RequestMapping("/order/queryByPageHelper")
public String queryByPageHelper(@RequestParam(defaultValue = "1") int page,
Model model) {
// 等同于 limit a,b 使用拦截器实现的
PageHelper.startPage(page, pageSize);
// 查询数据
List<Order> orders = orderService.queryAllOrder();
PageInfo pageInfo = new PageInfo<Order>(orders);
// 总记录数
Long count = pageInfo.getTotal();
// 总页数
int pages = pageInfo.getPages();
// 获取要 加载页 的 第一条数据索引(数据库数据索引从0开始)
int pageNum = (page-1) * pageSize;
// 当前页码
model.addAttribute("pageNow",page);
// 将数据放入作用域
model.addAttribute("orders",pageInfo.getList());
model.addAttribute("pages",pages);
// 转发到列表页
return "order/list";
}
- 基本方式
/**
* 分页操作-展示数据-基本方式
*
* @return
*/
@RequestMapping("/order/queryOrdersByPage")
public String queryOrdersByPage(@RequestParam(defaultValue = "1") int page,
Model model) {
private int pageSize = 2 ;
// 总记录数
int count = orderService.count();
// 总页数
int pages = count % pageSize == 0 ? count /pageSize : count /pageSize + 1;
// System.out.println("count::>"+count);
// System.out.println("pages::>"+pages);
// System.out.println("page::>"+page);
// 获取要 加载页 的 第一条数据索引(数据库数据索引从0开始)
int pageNum = (page-1) * pageSize;
// 当前页码
model.addAttribute("pageNow",page);
model.addAttribute("pages",pages);
// 查询数据
List<Order> orders = orderService.queryOrders(pageNum, pageSize);
// 将数据放入作用域
model.addAttribute("orders",orders);
// 转发到列表页
return "order/list";
}
4、前端代码编写
- 使用pageHelper实现分页功能
<%-- 使用pageHelper实现分页功能 --%>
<div style="margin: 50px">
<a type="button" href="/ssm/order/queryByPageHelper?page=${pageNow-1 > 0 ? pageNow-1:1}">«</a>
<c:forEach begin="1" end="${pages}" var="page">
<a type="button" name="page" href="/ssm/order/queryByPageHelper?page=${page}" style="padding: 2px 10px;">${page}</a>
</c:forEach>
<a type="button" href="/ssm/order/queryByPageHelper?page=${pageNow+1 <= pages ? pageNow+1:pages}" style="padding: 2px 10px">»</a>
</div>
- 使用 pageHelper-bootstrap 实现分页功能
<%-- 使用 pageHelper-bootstrap 实现分页功能 --%>
<nav aria-label="Page navigation">
<ul class="pagination">
<c:if test="${pageNum>1}">
<li>
<a href="/ssm/order/queryOrdersByPage?page=${pageNow-1}" aria-label="Previous">
<span aria-hidden="true">«</span>
</a>
</li>
</c:if>
<c:forEach begin="1" end="${pages}" var="page">
<li><a href="/ssm/order/queryOrdersByPage?page=${page}">${page}</a></li>
</c:forEach>
<c:if test="${pageNum < pages}">
<li>
<li>
<a href="/ssm/order/queryOrdersByPage?page=${pageNow+1}" aria-label="Next">
<span aria-hidden="true">»</span>
</a>
</li>
</li>
</c:if>
</ul>
</nav>