springboot分页问题-当超过最大页数时返回最后一页的数据

    今天遇到的这个问题,应该是在我不久之前遇到的,也就是我今天为什么写这篇博客的原因,当时我遇到这个问题的时候解决好长时间,没解决了,问的我的领导。因为没长记性吧,这次遇到,我忘记解决办法了,所以说写博客和记笔记的重要性了,博客的话,无论啥时你都能翻到,笔记也可以,当博客不稳定的时候,可以直接去笔记中去翻,我经常用的是:有道云笔记,还是挺好用的!
    开始介绍下我的问题(此时的表情是纠结的):就是最基础的一个问题了,分页,说到分页,其实很简单,maven下直接个依赖,就可以使用了,但是这么简单的情况下,我还遇到分页不好用了,就是当查到最后一页的时候,再往下查的话还会查出数据,也就是最后一页的数据(这个问题还是前端告诉我的,嘿嘿)
    有看过好多博客上写的解决办法,但是我都试了,貌似不太管用,就是在项目中加上如下的配置:   pagehelper.reasonable=false ,这个也是解决分页到最后一页,再往下查返回空的情况,但是我总觉得的我的工程不好使应该是某个版本的问题,跟这个无关,因为我也配置了。
    接下来就放上代码喽,直接粘上下面的依赖,不需要在.yml中和启动类中配置,很是方便的,以后用下面的依赖就可以。

<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper</artifactId>
   <version>5.1.2</version>
</dependency>
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
   <version>1.2.3</version>
</dependency>
<dependency>
   <groupId>com.github.pagehelper</groupId>
   <artifactId>pagehelper-spring-boot-starter</artifactId>
   <version>1.2.3</version>
</dependency>


  这样的话我就把我之前配置在启动类的相关都注释掉了,不在再需要这样的配置了!


  解决之后,感觉整个人都好了,这篇博客是我遇到这个问题时写了一半,今天想写博客时,发现有篇博客没写完,我满是激动地接下来了,哈哈!如果对你有帮助,给我个赞呗!

以下是一个使用Spring Boot和MyBatis-Plus进行分页查询的简单示例,包括前端HTML和JS代码。 在后端,我们需要定义一个Controller来接收前端的分页请求并返回分页结果。这里使用了MyBatis-Plus提供的Page类来实现分页查询。在前端,我们使用jQuery和Bootstrap来实现分页功能。 后端代码: ```java @RestController @RequestMapping("/users") public class UserController { @Autowired private UserService userService; @GetMapping("/list") public Page<User> listUsers(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size) { Page<User> users = userService.listUsers(page, size); return users; } } ``` UserService中的listUsers方法调用了MyBatis-Plus提供的PageHelper类进行分页查询: ```java @Service public class UserService { @Autowired private UserMapper userMapper; public Page<User> listUsers(int page, int size) { Page<User> pager = new Page<>(page, size); QueryWrapper<User> wrapper = new QueryWrapper<>(); return userMapper.selectPage(pager, wrapper); } } ``` 前端代码: ```html <div class="container"> <h1>User List</h1> <table class="table table-striped"> <thead> <tr> <th>ID</th> <th>Name</th> <th>Email</th> </tr> </thead> <tbody id="user-list"> </tbody> </table> <ul class="pagination"> <li class="page-item" id="prev-page"> <a class="page-link" href="#">Previous</a> </li> <li class="page-item active" id="page-1"> <a class="page-link" href="#">1</a> </li> <li class="page-item" id="next-page"> <a class="page-link" href="#">Next</a> </li> </ul> </div> ``` ```javascript $(function () { var currentPage = 1; function loadUsers(page) { $.get('/users/list?page=' + page + '&size=10', function (data) { var userList = $('#user-list'); userList.empty(); for (var i = 0; i < data.records.length; i++) { var user = data.records[i]; userList.append('<tr><td>' + user.id + '</td><td>' + user.name + '</td><td>' + user.email + '</td></tr>'); } currentPage = data.current; updatePagination(data.pages); }); } function updatePagination(totalPages) { var pagination = $('.pagination'); var prevPage = $('#prev-page'); var nextPage = $('#next-page'); pagination.find('.page-item').remove(); pagination.append(prevPage); for (var i = 1; i <= totalPages; i++) { var pageItem = $('<li class="page-item" id="page-' + i + '"><a class="page-link" href="#">' + i + '</a></li>'); if (i === currentPage) { pageItem.addClass('active'); } pagination.append(pageItem); } pagination.append(nextPage); prevPage.toggleClass('disabled', currentPage === 1); nextPage.toggleClass('disabled', currentPage === totalPages); } loadUsers(currentPage); $('.pagination').on('click', 'a', function (event) { event.preventDefault(); var pageLink = $(this); if (pageLink.parent().hasClass('disabled') || pageLink.parent().hasClass('active')) { return; } var page = parseInt(pageLink.text()); if (isNaN(page)) { if (pageLink.parent().attr('id') === 'prev-page') { page = currentPage - 1; } else { page = currentPage + 1; } } loadUsers(page); }); }); ``` 在这个示例中,我们使用了Bootstrap的分页样式,将分页结果显示为表格。在页面加载,我们调用loadUsers函数来加载第一页的用户数据,同更新分页条。当用户点击分页条上的按钮,我们使用jQuery的事件处理函数来加载相应页面的数据。在加载数据,我们向后端发送一个GET请求,带有当前页码和每页大小的参数,后端返回一个Page对象,其中包含了当前页码、总页数和页码对应的数据。我们在回调函数中遍历数据并将其添加到表格中,同更新分页条。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值