SpringMvc框架实现分页功能
一、 定义了一个名为PageResult的泛型类,用于封装分页查询的结果。
package entity;
import lombok.Data;
import java.util.List;
@Data
public class PageResult<T> {
private List<T> data; // 分页查询结果数据
private int totalCount; // 总记录数
private Integer pageNum=1; // 当前页码
private Integer pageSize=10; // 每页记录数
private Integer totalPage; // 构造方法
public PageResult(List<T> data, int totalCount, Integer pageNum, Integer pageSize) {
this.data = data;
this.totalCount = totalCount;
this.pageNum=pageNum;
this.pageSize=pageSize;
this.totalPage= sum(this.totalCount,this.pageSize);
}
//求totalPage
private int sum(int a,int b){//a是总数 b是一页多少
if (a%b==0){
return a/b;
}
return a/b+1;
}
@Override
public String toString() {
return "PageResult{" +
"data=" + data +
", totalCount=" + totalCount +
", pageNum=" + pageNum +
", pageSize=" + pageSize +
", totalPage=" + totalPage +
'}';
}
}
二、编写Controller层
三、编写Service层
四、编写接口
五、SQL语句
SELECT * FROM user
LIMIT #{pageSize} OFFSET #{start};
六、jsp部分代码
注意<c:forEach items=“${pageResult.data}” var=“list”>里items的值
七、效果展示
ps:
翻页的代码:
<div class="Page">
<a href="${pageContext.request.contextPath}/SaleProduct?pageNum=1">首页</a>
<a href="${pageContext.request.contextPath}/SaleProduct?pageNum=${pageResult.pageNum<=1?1:pageResult.pageNum-1}">« 上一页</a>
<a href="${pageContext.request.contextPath}/SaleProduct?pageNum=${pageResult.pageNum>=pageResult.totalPage?pageResult.totalPage:pageResult.pageNum + 1}">下一页 »</a>
<a href="${pageContext.request.contextPath}/SaleProduct?pageNum=${pageResult.totalPage}">尾页</a>
当前第${pageResult.pageNum}/${pageResult.totalPage}页
</div>
css样式:
.Page {
width: 100%;
text-align: center;
margin-top: 20px;
}
.Page a {
display: inline-block;
padding: 8px 16px;
text-decoration: none;
background-color: #f2f2f2;
color: #000;
margin: 0 5px;
border-radius: 5px;
}
.Page a:hover {
background-color: #e0e0e0;
}
.Page .page-info {
display: block;
margin-top: 10px;
font-size: 14px;
}