如果参数不存在,Spring 4.1.5 MVC @RequestParam(required = false, value = "somevalue") 将失败

2024-06-23

我有一个 spring mvc 控制器,它正在为具有多个请求参数的 Web 服务请求提供服务。所有参数均已标注required = false。如果请求中的参数不可用,

@RequestMapping(value = "/service/deployNew", method = RequestMethod.POST)
@ResponseBody public ResponseEntity<DeploymentId>  deploy(HttpServletRequest request, HttpServletResponse response, @RequestParam(required = false, value = "abc") String abc, @RequestParam(required = false, value = "xyz") String xyz, @RequestParam(required = false, value = "uvw") String uvw,)  throws Exception;

我看到错误

required string parameter 'param' is not present

如果我给参数赋予空白值,则一切正常,如下所示。参数abc and xyz有一个空白值,但我仍然通过它。

curl -i -X POST -H Accept:application/json "http://localhost:8080/Test/service/deploy.do?abc=&xyz=&uvw=somevalue"

如果我删除上述任何参数,它将引发错误。

curl -i -X POST -H Accept:application/json "http://localhost:8080/Test/service/deploy.do?uvw=somevalue"

我的服务由具有单个端点的多个客户端使用,这导致有时会出现一些参数。我需要处理所有的场景。任何想法?


尝试使用默认值

@RequestParam(required = false, defaultValue = "somevalue")

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html#defaultValue-- https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html#defaultValue--

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

如果参数不存在,Spring 4.1.5 MVC @RequestParam(required = false, value = "somevalue") 将失败 的相关文章

随机推荐

  • 使用 sed 替换多行

    我以为我理解 sed 但我想不是 我有以下两个文件 我想用一个不同的行替换 why 和 huh 行 根本没有空格 测试 txt hi why huh hi why huh 测试2 txt 1 hi why huh hi why huh 以下
  • Rxjs 订阅方法被忽略

    在将其标记为重复之前 请注意这些都不适合我 问题1 https stackoverflow com questions 38142278 subscribe method is not triggered with rxjs 问题2 htt
  • FHIR 资源的 id 和标识符有什么区别?

    The Resource实体定义一个id属性为 此工件的逻辑 ID 同时对于像这样的资源MedicationRequest还定义了一个名为identifier 描述是 外部标识符 或 企业标识符 我想知道这两个属性有什么区别 从 RESTf
  • Bash:使用参数扩展查找和替换

    我想更换输入法 find string include 圆进度 38px 30px 4eb630 和输出 输出字符串 include 圆进度 38px 30px using find string pattern replacement s
  • 分解 SQL 表中每一行的 XML

    我有一个表 其中包含两列 ID 和 XML 数据 我想分解每个 ID 的 XML 我在 XML 中提取单个值 并且所有 XML 的结构都相同 我只是不确定如何循环遍历表并将 XML 查询应用于每一行 我需要应用的查询如下 Select to
  • MSVC:手动使用 link.exe

    我正在尝试使用测试 C OpenGL SDL 项目设置名为 Waf 的构建系统 但在链接过程中遇到了一些问题 据我所知 所有库都已正确找到 并添加到链接命令中 但链接过程似乎就像库未链接一样 为了尝试调试该过程 我尝试手动运行编译 链接过程
  • Ruby 中 block 和 &block 的区别

    为什么有时我应该在接受块的函数内使用 block 而有时应该使用 block block只是一个局部变量 block是对传递给该方法的块的引用 def foo block nil p block end foo gt nil foo tes
  • Nginx - “强制”200 缓存响应而不是 304

    是否有可能以某种方式强制执行 200 缓存 响应 而不是静态文件未修改的 304 响应 如果是这样 您可能会节省大量服务器请求 并显着加快回访者的加载时间 我发现单独的 Expires 并不能正确设置行为 下面是肯定的火 Set cache
  • 从 pdf 转换时的默认 imagemagick 密度

    我们有以下代码 convert foo pdf foo tiff 这多年来一直工作良好 并且生成的 tiff 具有合理的打印质量 我们刚刚升级了 imagemagick 现在 tiff 的分辨率较低 我假设最近的 IM 升级发生了一些变化
  • 使用 Quartz.net 配置 ADOJobStore

    如何使用 Quartz net 设置工作库 他们在网站上提供的教程对我没有帮助 在此页面中虽然有步骤http quartznet sourceforge net tutorial lesson 9 html http quartznet s
  • 私有 EC2 和 HTTP 流量中的 AWS 应用程序

    我有一个应用程序在私有子网的 EC2 实例中运行 以增加额外的安全性 直接从与公共子网关联的面向互联网的 NLB 接收流量 我还在公共子网中配置了一个 NAT 网关 以便私有 EC2 实例可以从 Internet 下载所需的任何内容 我刚刚
  • jQuery onclick addclass/removeclass 并添加淡入淡出

    在过去的三天里 我一直在寻找解决我的问题的方法 我见过很多人和我有同样问题的人 但没有一种解决方案可以解决我的问题 所以我又回到了起点 我请求你们友好的人们的帮助 我现在正在运行以下脚本 该脚本非常适合我 show commentsandn
  • 序列化和反序列化的 xstream 错误

    我在 Java 中使用 xStream 序列化 java 库中的 java 对象 并在客户端反序列化它 我有几个问题 如果我这样做 XStream xstream new XStream xstream setMode XStream ID
  • 动态添加 id 到每个表格单元格

    我正在尝试创建一个动态 js 表 我想动态地为每个单元格提供 id 我想使用这些 id 在不同的 js 事件处理程序中使用 怎样才能做到呢 我尝试过不同的方法 但没有一个有效
  • 如何从 SYSOUT 中删除 DFSORT 消息

    DFSORT 有多个消息 由具有多个排序操作的 COBOL 程序内部使用 我想删除那些 DFSORT 消息并仅保留 COBOL 程序中的消息 你有三个选择 使用 OUTDD ddname Enterprise COBOL 编译器选项更改用于
  • 使用 Retrofit 获取 api

    我有一个网络服务链接 我想用不同的 customerId 来访问它 其形式为 http apidev myserver com au 8980 TestService rest TestService jobs bycustid custo
  • 使图像跟随鼠标指针

    我需要一个火箭来跟随鼠标指针在我的网站上的移动 这意味着它应该旋转以面向运动方向 并且如果可能的话 根据它必须经过的距离加速 这可能吗 也许是jquery 通过使用 jquery 将 mousemove 注册到文档 将图像 css left
  • 为什么需要在 JavaScript 中冻结对象?

    我不清楚何时有人需要使用Object freeze在 JavaScript 中 MDN 和 MSDN 没有提供有用的现实生活示例 我知道尝试在运行时更改这样的对象意味着崩溃 问题是 我什么时候会欣赏这次崩溃 对我来说 不变性是一个设计时间约
  • 如何将文字转换为十六进制值

    从文本文件中读取 2 个字符的值的十六进制表示形式 例如 0C 我需要将相应的十六进制值 X 0C 存储在程序变量中 如以下代码所示 我知道 COBOL 允许执行诸如 MOVE X 0C TO somevariable 之类的操作 但在我的
  • 如果参数不存在,Spring 4.1.5 MVC @RequestParam(required = false, value = "somevalue") 将失败

    我有一个 spring mvc 控制器 它正在为具有多个请求参数的 Web 服务请求提供服务 所有参数均已标注required false 如果请求中的参数不可用 RequestMapping value service deployNew