Mybatis系列之分页问题
  TEZNKK3IfmPf 2023年11月14日 23 0

测试反馈的一个问题,前端列表页,点击第2页,没有响应。第一反应是去查看Chrome F12 Console有没有报错。

回顾

事实上,之前遇到一个看起来类似的问题,点击第3页,页面变为空白。一脸懵逼,查看Console才发现有JSON解析失败的报错,刷新页面,点击其他页面都是正常的;只有第3页才会变为空白,控制台报错信息为:

Mybatis系列之分页问题

 

这个【王】是什么鬼。查看接口响应结果:

Mybatis系列之分页问题

 

有三个字段以【王】开头。会想JSON解析报错,再重点看看remark字段,才发现有JSON解析逻辑。

即remark字段要么为null或空,要么得是一个JSON数据。现在测试环境造的脏数据不是JSON,则报错。

定位问题

扯远,此次点第2页,没有响应,控制台没有报错,说明不是前端JS报错。查看接口responseBody,很快发现问题:

Mybatis系列之分页问题

是后端分页有问题。看代码:

public String strategyList(JSONObject jsonObject) {
PageHelper.startPage(Integer.parseInt(jsonObject.get("pageNo") + ""),
Integer.parseInt(jsonObject.get("pageSize") + ""));
list = channelPublicStrategyMapper.strategyList(jsonObject);
PageInfo<Map> pageInfo = new PageInfo<>(list);
return JSONObject.toJSONString(ServiceUtil.returnSuccessData(pageInfo));
}

看不出任何问题。调试,入参​​jsonObject.get("pageSize") == 10​​​,前端传参没问题,但是最后返回的​​pageInfo​​包装信息不对劲:

Mybatis系列之分页问题

到此时还是一脸懵逼。。后来无意中点到源码,才发现​​PageHelper​​​和​​PageInfo​​不是同一个依赖包的API:

Mybatis系列之分页问题

 

两个依赖包分别是:

<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.9</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>2.1.0</version>
</dependency>
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月17日   55   0   0 json
  TEZNKK3IfmPf   2024年04月26日   47   0   0 json
  TEZNKK3IfmPf   2024年04月26日   35   0   0 序列化json
  TEZNKK3IfmPf   2024年04月19日   57   0   0 javajson
  TEZNKK3IfmPf   2024年05月17日   50   0   0 jsonmysql
TEZNKK3IfmPf