利用mybatis的分页插件实现分页

一、后端分页:

1、首先在pom文件中导入依赖:

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.12</version>
</dependency>

2、在service的实现层利用插件pageHelper,它自动帮我们封装了pageInfo。


    @Override
    public PageInfo<User> queryUser(int pageNum, int pageSize) {
        PageHelper.startPage(pageNum,pageSize);
        List<User> list=userdao.queryUser();
        PageInfo<User> page=new PageInfo<>(list);
        return page;
    }

3、编写控制层

@RequestMapping("/AllUser")
public String AllUser(Model model, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "10") int pageSize){
        System.out.println(pageNum);
        System.out.println(pageSize);
       PageInfo<User> page=service.queryUser(pageNum,pageSize);
       model.addAttribute("page",page);
       return "User";
    }

二、前端分页:

1、前端页面中添加两个隐藏文本的表单:

<form action="/AllUser" id="fm" method="post">
    <input type="hidden" name="pageNum" id="pageNum" value="">
    <input type="hidden" name="pageSize" id="pageSize" value="">
</form>

2、导入bootstrap里面的分页组件:

<nav aria-label="Page navigation">
    <ul class="pagination">
        <li>
            <a id="first" aria-label="Previous">
                <span aria-hidden="true">首页</span>
            </a>
        </li>
        <li>
            <a id="pre" aria-label="Previous">
                <span aria-hidden="true">上一页</span>
            </a>
        </li>
        <c:forEach items="${page.navigatepageNums}" var="i">
            <li name="pageNum" <c:if test="${i==page.pageNum}">class="active" </c:if>><a>${i}</a></li>
        </c:forEach>

        <li>
            <a id="next" aria-label="Next">
                <span aria-hidden="true">下一页</span>
            </a>
        </li>
        <li>
            <a id="last" aria-label="Next">
                <span aria-hidden="true">末页</span>
            </a>
        </li>

        <li style="font-size: 20">
                &nbsp; &nbsp; &nbsp; &nbsp;共有 ${page.total} 记录
        </li>
    </ul>
</nav>

3、为分页组件添加点击事件:

<script>
    if (!${page.hasPreviousPage}){
        $("#pre").addClass("disabled");
        $("#first").addClass("disabled");
    }

    if (!${page.hasNextPage}){
        $("#next").addClass("disabled");
        $("#last").addClass("disabled");
    }

    $("#pre").click(function () {
        if (!$("#pre").hasClass("disabled")){
            $("#pageNum").val(${page.pageNum}-1);
            $("#fm").submit();
        }
    })

    $("#next").click(function () {
        if (!$("#next").hasClass("disabled")){
            $("#pageNum").val(${page.pageNum}+1);
            $("#fm").submit();
        }
    })

    $("li[name='pageNum']").click(function () {
        if(!$(this).hasClass("active")){
            $("#pageNum").val($(this).children("a").html());
            $("#fm").submit();
        }
    })

    $("#first").click(function () {
        if (!$("#first").hasClass("disabled")){
            $("#pageNum").val(1);
            $("#fm").submit();
        }
    })

    $("#last").click(function () {
        if (!$("#last").hasClass("disabled")){
            $("#pageNum").val(${page.pages});
            $("#fm").submit();
        }
    })
</script>

三、看看实现分页的效果吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值