Springboot+Mybatis分页插件+Thymeleaf 实现分页

1.先导依赖

<!-- pagehelper 分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.1</version>
        </dependency>

2.一个普通的实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class StudentExt extends Student{
    // 以下2个也是实体类  大家自定义实体类即可  (谁让我写的是多表呢)
    private Institute institutes;
    private ClassTable classTable;

}

3.自定义一个方法

@Mapper
public interface StudentMapper extends BaseMapper<Student> {
   
    List<StudentExt> findAll();
    
}

4.Controller

    @ApiOperation("查询全部")
    @GetMapping("/findAll")                             // 默认显示第一页
    public String findAll(Model model,@RequestParam(defaultValue = "1",value = "pageNum") Integer pageNum){
        // pageNum:当前第几页, 3:展示几条数据
        PageHelper.startPage(pageNum, 3);

        List<StudentExt> all = studentMapper.findAll();

        PageInfo<StudentExt> studentExtPageInfo = new PageInfo<>(all);
        // 携带参数
        model.addAttribute("all",all);
        model.addAttribute("page",studentExtPageInfo);

        return "main";
    }

5.HTML 页面的赋值

 <tr th:each="all:${all}">
            <td th:text="${all.sNum}"></td>
            <td th:text="${all.sName}"></td>
            <td th:text="${all.gender}"></td>
            <td th:text="${#dates.format(all.birthday,'yyyy-MM-dd')}"></td>
            <td th:text="${all.phone}"></td>
            <td th:text="${all.classTable.cName}"></td>
            <td th:text="${all.institutes.iName}"></td>
            <td>
                <input th:class="delButton"  type="button" value="删除">
                <input th:class="updButton" type="button" value="修改">
            </td>
        </tr>

        </tr>
        <tr>
            <td colspan="8">
                <br>
                当前第<span th:text="${page.pageNum}"></span>页
                <br>
                <button><a th:href="@{/findAll(pageNum=1)}">首页</a></button>
                <button><a th:href="@{/findAll(pageNum=${page.hasPreviousPage}?${page.prePage}:1)}">上一页</a></button>
                <button><a th:href="@{/findAll(pageNum=${page.hasNextPage}?${page.nextPage}:${page.pages})}">下一页</a></button>
                <button><a th:href="@{/findAll(pageNum=${page.pages})}">尾页</a></button>
            </td>
        </tr>

效果图如下

PageHelper分页插件的PageInfo的属性参数,成员变量的解释

    //当前页
    private int pageNum;
 
    //每页的数量
    private int pageSize;
 
    //当前页的数量
    private int size;
 
    //由于startRow和endRow不常用,这里说个具体的用法
    //可以在页面中"显示startRow到endRow 共size条数据"
    //当前页面第一个元素在数据库中的行号
    private int startRow;
 
    //当前页面最后一个元素在数据库中的行号
    private int endRow;
    //总记录数
    private long total;
 
    //总页数
    private int pages;
 
    //结果集(每页显示的数据)
    private List<T> list;
 
    //第一页
    private int firstPage;
 
    //前一页
    private int prePage;
 
    //是否为第一页
    private boolean isFirstPage = false;
 
    //是否为最后一页
    private boolean isLastPage = false;
 
    //是否有前一页
    private boolean hasPreviousPage = false;
 
    //是否有下一页
    private boolean hasNextPage = false;
 
    //导航页码数
    private int navigatePages;
 
    //所有导航页号
    private int[] navigatepageNums;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值