最近写项目的时候,碰到一个很奇怪的bug,前端使用get向后端传递了分页使用的pageNum和pageSize,控制台却总是报错,提示如下:
提示的意思就是后端的pageNum是空的,在后端吧pageNum写成固定值,pageSize也会报同样的错。
一开始我以为是前端没有传数据导致的,打开浏览器控制台,前端的请求如下:
说明前端是成功传递了数据的,后端debug,发现也接收到了,但是运行下去,pageNum和pageSize就变成了null,最后改用输出语句
System.out.println("pageNum:"+pageNum + ","+"pageSize:"+pageSize);
奇怪的事情发生了,控制台输出了两次
按理来说一条输出语句怎么能输出两次呢,后来想清楚,前端发送了两次get请求。
返回前端查看api文档,果然有有两次get请求,分页的get带了参数,而另一个get请求是无参的,controller层没有对应的无参方法,默认使用了分页的带参的方法,导致pageNum和pageSize有两次结果,而发生报错