Spring不接受POST参数,除非@RequestParam“required = false”

2024-04-10

我正在运行 Spring 3.1.2 应用程序。我有一个带有多种方法的 RESTful servlet。 GET 方法运行得非常好(@PathVariables匹配,响应根据 Accept 标头正确编组为 JSON 或 XML,等等)100% 成功。

但是 POST 方法根本不起作用。经过几个小时与皈依者和我能找到的所有其他 Spring 方面的相处(所有修补都恢复了),我将其范围缩小到required领域在@RequestParam。这是我一直用来研究的简化测试方法:

@RequestMapping (value = "/bogus",
                 method = POST)
public @ResponseBody PassResponse bogus (
            @RequestParam (value = "test", required = false) String test) {
    // Just some handy garbage objects that marshal to JSON/XML
    UserResponse user = new UserResponse ();
    user.setName (test);
    AccountDetail detail = new AccountDetail (user,null);
    return new PassResponse (detail);
}

必需=假:一切正常(参数已接收并解释)。正如我所期望的那样

必需=真:(或未指定,因为这是默认设置)我始终收到消息“MissingServletRequestParameterException:所需的字符串参数“test”不存在"

客户端视图:

必需=真

Request URL:http://localhost:8080/internal-project/rest/bogus
Request Method:POST
Status Code:400 Bad Request
Request Headersview source
Accept:application/json
Connection:keep-alive
Content-Length:12
Host:localhost:8080
Request Payload
test=LALALAA
Response Headersview source
Connection:close
Content-Length:971
Content-Type:text/html;charset=utf-8
Date:Wed, 24 Oct 2012 18:41:05 GMT
Server:Apache-Coyote/1.1

必需=假

Request URL:http://localhost:8080/internal-project/rest/bogus
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json
Connection:keep-alive
Content-Length:12
Host:localhost:8080
Request Payload
test=LALALAA
Response Headersview source
Content-Type:application/json;charset=UTF-8
Date:Wed, 24 Oct 2012 18:44:03 GMT
Server:Apache-Coyote/1.1
Transfer-Encoding:chunked

它与切换时运行的测试套件完全相同required我可以看到参数正在传递。当参数是可选的时,Spring 会正确处理它。

如果有人以前遇到过这个问题或者有任何想法,我很想听听他们的意见。将所需参数标记为可选,即使它有效,也是糟糕的自我文档,即使我对其进行了评论。而且这种行为让我有点紧张。希望我只是在某个地方搞砸了一些事情......


Your Content-Type标题应该是application/x-www-form-urlencoded我认为。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring不接受POST参数,除非@RequestParam“required = false” 的相关文章

随机推荐

  • 如何在集成测试中使用 Propagation.REQUIRES_NEW 回滚嵌套事务

    我对扩展以下基类的各种服务进行了几个集成测试 ContextConfiguration locations classpath applicationContext test xml TransactionConfiguration tra
  • 在 Firebase 中对数据进行排序

    我正在使用 Firebase listview 如下所示 它的工作方式就像一个魅力 但问题是它在我的 listview lv 末尾显示子项 Posts 中最后按下的键 我希望最后按下的键最重要的是显示 或者我是否可以按日期对其进行排序 qu
  • MS Access SQL,更改数据类型

    当尝试在 Access 的设计模式下将数据类型从文本更改为数字 使用接近 2 GB 的数据库 时 我不断收到 磁盘空间或内存不足 错误 因此我找到了一种解决方法 基本上创建一个新列 将数据类型设置为数字 复制旧列内容 删除旧列并将新列重命名
  • 给定源顶点,查找有向图中具有环路的所有路径

    我无法解决这个问题 我必须找到所有simple从源顶点开始的路径s含有一个simple有向图中的循环 即不允许重复 当然除了循环在路径上连接回的单个重复顶点 我知道如何使用 DFS 访问来查找图形是否有循环 但我找不到一种方法来使用它来查找
  • 如何正确地将React组件存储在单独的文件中并导入React?

    我已经完成了一些 React 教程的介绍 并尝试将迄今为止的一些知识运用起来 我已经成功地在 a 中创建了一些组件
  • 如何获取UISlider拇指图像的中心

    我正在创建一个自定义UISlider测试一些界面创意 主要是基于使拇指图像更大 我找到了如何做到这一点like so UIImage thumb UIImage imageNamed newThumbImage 64px png self
  • 如何在使用邻接矩阵表示的大型网络中找到桥梁(社区连接节点)

    我有大约 10K 到 100K 个节点的网络 这些节点都已连接 这些节点通常被分组为社区集群 这些社区集群之间通过许多边紧密相连 并且存在集线器等 在社区之间存在具有一些边的节点bridging 连接社区在一起 这些数据集位于邻接矩阵中 我
  • htaccess 全部重写为index.html

    我正在尝试写 htaccess文件 以便无论用户请求什么 他都会获得该页面index html 我写过这个 Options FollowSymlinks RewriteEngine on RewriteRule index html NC
  • APC 命中/未命中和配置

    APC 操作码缓存中的 命中和未命中 是什么 我已经安装了 APC 并且运行得很好 但是我有 一些 失误 我想知道这是否是 坏 的 另外 我正在运行 Openx 因此 很快就会填满 缓存完整计数 我需要在配置中更改哪些内容才能最大限度地减少
  • 打印大型 TCL 项目的源层次结构

    因此 我正在处理一个大型 TCL 项目 并且认为构建一个树状视图来显示文件在项目中的来源方式会很酷 我修改了源命令以执行以下操作 rename source real source proc source args set file han
  • JavaFx 12 Spring,Maven 未找到前缀插件

    我在尝试使用 javafx 和 spring 调试项目时遇到问题 我的pom XML
  • UISplitViewController:如何强制在应用程序启动时显示主弹出框? (肖像)

    在 iPad 应用程序中 我使用 UISplitViewController 当应用程序以纵向模式启动时 我需要强制显示主弹出窗口 现在我正在使用这段代码 它在 iOS 5 0 上运行良好 if UIInterfaceOrientation
  • UWP 从任务更新 UI

    我有一个应用程序 它正在检查本地网络中的网络范围 用于运行http服务 所以这意味着我正在检查 f e 从 10 0 0 1 到 10 0 0 255 问题来了 在PC上运行时 速度足够 但在Lumia 950上运行时 速度不够 所以我想在
  • 如何使用 JOINED 继承策略和 Hibernate 创建现有超级对象的子对象

    如何使用 Hibernate 创建持久化超级对象的子对象的正确方法是什么 考虑以下示例 在数据库中被持久化UserID 为 1 名字为 Kevin 激光名字为 Smith 到时候新Entity的数据库模型扩展了Auditor这是哪个子类Us
  • 从外部类访问私有变量 - iOS

    我在类中有一个私有变量 我试图从外部类访问该变量 我有办法做到这一点吗 根据定义 私有实例变量是私有的 您无法从外部访问它们 如果您是该类的作者 则应该为变量提供访问器方法 如果不是 则应避免访问该变量 但是 有一些方法可以规避该限制 您可
  • 在应用程序启动时清除所有会话

    我注意到 当我重新启动 ASP Net 应用程序时 会记住已登录用户的凭据 并且他们可能会发现自己已自动登录 只要不保留在登录时设置的用户会话变量 这种行为就是不需要的 那么 我怎样才能 忘记 应用程序启动时的所有会话呢 我发现我无法使用S
  • Spring WebApp中使用Elasticsearch客户端时出现链接错误

    我在尝试将 Elasticsearch java 客户端包含在我的 Web 应用程序中时遇到问题 我有所需的依赖项 并且我正在初始化 销毁 Spring bean 中创建客户端 作为一个简单的测试 如下所示 Override public
  • 找不到 gem Railties (>= 0.a) (Gem::GemNotFoundException)

    我已经看到了一些其他问题 尝试了他们的建议 但没有一个对我有用 我已经使用 Rails 大约一年了 刚刚开始一个新的 Rails 项目 突然遇到了问题 我卸载并尝试重新安装所有 Ruby 和 Rails Ruby 很好 但 Rails 不行
  • Rails 4 中的 autoload_paths 与 eager_load_paths 令人困惑

    我读了一篇关于 Rails load paths 的文章 这里是link http hakunin com rails3 load paths 但是 我仍然对两者之间的区别感到困惑autoload paths and eager load
  • Spring不接受POST参数,除非@RequestParam“required = false”

    我正在运行 Spring 3 1 2 应用程序 我有一个带有多种方法的 RESTful servlet GET 方法运行得非常好 PathVariables匹配 响应根据 Accept 标头正确编组为 JSON 或 XML 等等 100 成