我有这个控制器方法的Spring应用程序。
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam(value="number", required=false) Long number) {
...
return "redirect:/showAll/";
}
在我的JSP中,我有一个标准的HTML表单,它将一个名为"number“的值张贴到上面的控制器方法中。但是,如果我省略了值(不要在文本字段中输入任何内容),并在调用控制器方法之前将数据发送给控制器,则浏览器将显示
HTTP Status 400 - Required Long parameter 'number' is not present
尽管控制器方法注释清楚地将"number"-parameter定义为,而不是所需的。
有没有人对可能发生的事情略知一二?
谢谢。
PS:正在抛出的异常如下:
org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter 'number' is not present
编辑:这是一个Spring3.2.3.RELEASEbug ( 请看这里)。使用3.1.4版本的version,我不再有这个问题了.
发布于 2013-10-06 21:09:29
我遇到了同样的情况,当您的参数以空值出现在请求中时就会发生这种情况。
也就是说,如果POST主体包含"number=“(带有空值),那么Spring将抛出此异常。但是,如果该参数在请求中根本不存在,则它应该在没有任何错误的情况下工作。
发布于 2020-09-11 17:58:07
我的问题是,我与邮递员一起发送的请求中的一些标题没有出现(未经检查):
当我返回Content-Length
头时,请求正常工作(200 OK响应)。
https://stackoverflow.com/questions/17858537
复制相似问题