SpringMvc实现分页功能

本文详细介绍了如何在SpringMvc框架中实现分页功能,包括创建PageResult类封装查询结果,编写Controller、Service层处理请求,以及使用SQL查询、JSP展示和CSS样式设计。
摘要由CSDN通过智能技术生成

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}">&laquo; 上一页</a>
        <a href="${pageContext.request.contextPath}/SaleProduct?pageNum=${pageResult.pageNum>=pageResult.totalPage?pageResult.totalPage:pageResult.pageNum + 1}">下一页 &raquo;</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;
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值