Spring MVC - RequestParamException参数不存在

Gab*_* R. 14 javascript java ajax exception spring-mvc

我的网站最终出现了问题.它使用AJAX请求从服务器获取数据,该服务器使用Spring MVC.

(间歇性地)发生的事情是,有时候我们会遇到类似这样的异常:

org.springframework.web.bind.MissingServletRequestParameterException: Required Integer parameter 'page' is not present
at 
Run Code Online (Sandbox Code Playgroud)

这种异常发生在一些AJAX POST调用中(不仅仅是针对这种情况!!),我们仍然无法重现它以了解正在发生的事情.

例如,在其中一种情况下,参数"page"(用于在用户滚动页面时加载内容 - 因此它是必需变量)通过AJAX调用发送,该调用具有带有页面参数的" 数据 "字段从这样的形式:

<input type="hidden" name="page" id="page" value="1">
Run Code Online (Sandbox Code Playgroud)

这样的ajax调用($("#filter")url都可以):

$.ajax({
    type: "POST",
    data: $("#filter").serialize(), // serializes the form's elements.
    url: _ctx + URL_FILTER,
    cache: false
})
Run Code Online (Sandbox Code Playgroud)

我们重现的唯一方法是将其属性"name"更改为" page " 以外的其他内容.但我想情况并非如此(大多数用户甚至没有打开开发者控制台...)

我已经google了很多,我检查了所有可能性.借口还可以:

(Content-Type: application/x-www-form-urlencoded; charset=UTF-8) 
Run Code Online (Sandbox Code Playgroud)

参数还可以,AJAX看起来还不错,一切都好看......但是我们找不到发生了什么.我们已经尝试了很多可能性,但我们仍然无法强制这些例外发生.

我们得到的一个假设是,有时AJAX可能会发送空数据块,而没有任何参数.但我们甚至不知道它是否真实以及如何检查其真实性.

有什么可能性?怎么测试?

编辑: 我们可以重现一种获得异常的方法:重复重新加载页面几秒钟(按住重新加载键一段时间).有没有办法防止这种情况的例外?!

小智 1

对页面参数 @RequestParam(defaultValue = 0) int page 的控制器类方法进行以下更改。

或者将控制器方法粘贴到此处。