Loading... ## 事故复盘: 当我们删除最后一条数据时候,会发生一种bug ### 删除前  ### 删除后: **我们会发现数据没查出来,这怎么回事呢???**  ## 排错: ### 前端axios请求: ```javascript handleDelete(row) { console.log(row) this.$confirm("此操作永久删除当前信息,是否继续", "提示", {type: "info"}).then(() =>{ axios({ method : 'delete', url : '/books/' + row.id }).then((res) =>{ if(res.data.flag){ this.$message.success("删除成功!") }else{ this.$message.error("删除失败!") } }).finally(()=>{ this.getAll() }) }).catch(() =>{ this.$message.info("取消删除!") }) }, ``` ### 重点: > 我们发现当我们删除最后一条数据时,前端会往后端发送请求数据,删除最后一条数据前,页码值为2,那么删除后,页码值还为2,这下好了,我们明明删除后只有1页的数据了,然而你却要我第二页,所以查出的数据为空。 ## 解决方法: 我们后端判断一下就好了,如果**请求的页码值**大于我们的**最大页码值**,我们直接使用**最大页码**作为**当前页码** ### 代码示例: ```java /** * 分页查询 * @param currentPage 当前页数 * @param pageSize 每页显示条数 * @return */ @GetMapping("/{currentPage}/{pageSize}") public R getPage(@PathVariable int currentPage,@PathVariable int pageSize){ Page<Book> page = bookService.page(new Page<>(currentPage, pageSize)); // 如果当前页码值大于总页码值,那么重新执行查询操作,使用最大页码值作为当前页码值 if(currentPage > page.getPages()){ page = bookService.page(new Page<>(page.getPages(), pageSize)); } return new R(true, page); } ``` 最后修改:2022 年 08 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果文章有用,请随意打赏。