Springboot使用Pagehelper时thymeleaf遍历each时的问题、视图model无法正常遍历问题、thymeleaf Pagehelper 分页遍历出错

使用th:each时,用常规惯性思维遍历出错

controller返回的不是一个实体对象,所以不能直接遍历,要调用pageinfo的list方法遍历

在这里插入图片描述

正确的遍历写法:
在这里插入图片描述
最后补充一下pagehelper代码:
controller:

//分页查询数据
    @GetMapping("/findall")
    public String usermanage(Model model,
                             @RequestParam(required = false,defaultValue="1",value="pageNum")Integer pageNum,
                             @RequestParam(defaultValue="5",value="pageSize")Integer pageSize){
        //为了程序的严谨性,判断非空:
        if(pageNum == null){
            pageNum = 1;   //设置默认当前页
        }
        if(pageNum <= 0){
            pageNum = 1;
        }
        if(pageSize == null){
            pageSize = 5;    //设置默认每页显示的数据数
        }
        System.out.println("当前页是:"+pageNum+"显示条数是:"+pageSize);

        //1.引入分页插件,pageNum是第几页,pageSize是每页显示多少条,默认查询总数count
        PageHelper.startPage(pageNum,pageSize);
        //2.紧跟的查询就是一个分页查询-必须紧跟.后面的其他查询不会被分页,除非再次调用PageHelper.startPage
        try {
            List<User> all = userMapper.findAll();
            System.out.println("分页数据:"+all);

            //3.使用PageInfo包装查询后的结果,5是连续显示的条数,结果list类型是Page<E>
            PageInfo<User> userPageInfo = new PageInfo<User>(all, pageSize);
            //4.使用model/map/modelandview等带回前端
            model.addAttribute("guys",userPageInfo);
        }finally {
            PageHelper.clearPage(); //清理 ThreadLocal 存储的分页参数,保证线程安全
        }
        //5.设置返回的jsp/html等前端页面
        // thymeleaf默认就会拼串classpath:/templates/xxxx.html
        return "list";
    }

html:

            <!--                    分页-->
            <!--显示分页信息-->
            <div class="modal-footer no-margin-top">
                <div class="col-md-6">
                    当前第 [[${guys.pageNum}]],[[${guys.pages}]].一共 [[${guys.total}]] 条记录
                </div>

                <ul class="pagination pull-right no-margin">
                    <li th:if="${guys.hasPreviousPage}">
                        <a th:href="'/usermanage?pageNum=1'">首页</a>
                    </li>

                    <li class="prev" th:if="${guys.hasPreviousPage}">
                        <a th:href="'/usermanage?pageNum='+${guys.prePage}">
                            <i class="ace-icon fa fa-angle-double-left"></i>
                        </a>
                    </li>
                    <!--遍历条数-->
                    <li th:each="nav:${guys.navigatepageNums}">
                        <a th:href="'/usermanage?pageNum='+${nav}" th:text="${nav}" th:if="${nav != guys.pageNum}"></a>
                        <span style="font-weight: bold;background: #6faed9;" th:if="${nav == guys.pageNum}" th:text="${nav}" ></span>
                    </li>

                    <li class="next" th:if="${guys.hasNextPage}">
                        <a th:href="'/usermanage?pageNum='+${guys.nextPage}">
                            <i class="ace-icon fa fa-angle-double-right"></i>
                        </a>
                    </li>

                    <li>
                        <a th:href="'/usermanage?pageNum='+${guys.pages}">尾页</a>
                    </li>
                </ul>
            </div>

            <div>当前页号:<span th:text="${guys.pageNum}"></span></div>
            <div>每页条数:<span th:text="${guys.pageSize}"></span></div>
            <div>起始行号:<span th:text="${guys.startRow}"></span></div>
            <div>终止行号:<span th:text="${guys.endRow}"></span></div>
            <div>总结果数:<span th:text="${guys.total}"></span></div>
            <div>总页数:<span th:text="${guys.pages}"></span></div>
            <hr />
            <div>是否为第一页:<span th:text="${guys.isFirstPage}"></span></div>
            <div>是否为最后一页:<span th:text="${guys.isLastPage}"></span></div>
            <div>是否有前一页:<span th:text="${guys.hasPreviousPage}"></span></div>
            <div>是否有下一页:<span th:text="${guys.hasNextPage}"></span></div>


  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值