首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >缺少字段的Spring HTTP状态代码400 (坏请求),该字段被定义为不需要

缺少字段的Spring HTTP状态代码400 (坏请求),该字段被定义为不需要
EN

Stack Overflow用户
提问于 2013-07-25 12:50:43
回答 2查看 56K关注 0票数 10

我有这个控制器方法的Spring应用程序。

代码语言:javascript
运行
复制
@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam(value="number", required=false) Long number) {
   ...
   return "redirect:/showAll/";
}

在我的JSP中,我有一个标准的HTML表单,它将一个名为"number“的值张贴到上面的控制器方法中。但是,如果我省略了值(不要在文本字段中输入任何内容),并在调用控制器方法之前将数据发送给控制器,则浏览器将显示

代码语言:javascript
运行
复制
HTTP Status 400 - Required Long parameter 'number' is not present

尽管控制器方法注释清楚地将"number"-parameter定义为,而不是所需的。

有没有人对可能发生的事情略知一二?

谢谢。

PS:正在抛出的异常如下:

代码语言:javascript
运行
复制
org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter 'number' is not present

编辑:这是一个Spring3.2.3.RELEASEbug ( 请看这里)。使用3.1.4版本的version,我不再有这个问题了.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-06 21:09:29

我遇到了同样的情况,当您的参数以空值出现在请求中时就会发生这种情况。

也就是说,如果POST主体包含"number=“(带有空值),那么Spring将抛出此异常。但是,如果该参数在请求中根本不存在,则它应该在没有任何错误的情况下工作。

票数 20
EN

Stack Overflow用户

发布于 2020-09-11 17:58:07

我的问题是,我与邮递员一起发送的请求中的一些标题没有出现(未经检查):

当我返回Content-Length头时,请求正常工作(200 OK响应)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17858537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档