You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring RestController多RequestParam报错:必填参数'b'不存在

问题分析与解决

这个错误的核心原因不是WSL2的bug,而是你在WSL2的bash环境中执行curl命令时,&符号被shell解析成了后台执行的分隔符,导致实际发送给Spring的请求只包含a=foo参数,b=bar并没有被作为URL的一部分发送。

解决方法

有两种方式可以避免这个问题:

  • 把整个URL用双引号包裹:
    curl "http://localhost:8080/test?a=foo&b=bar"
    
  • 对&符号进行转义:
    curl http://localhost:8080/test?a=foo\&b=bar
    

验证方式

你可以先执行以下命令看shell如何解析你的原始请求:

echo http://localhost:8080/test?a=foo&b=bar

输出结果只会显示http://localhost:8080/test?a=foo,同时后台会出现b=bar: command not found的错误,这就证明了&被shell拆分了,没有作为URL参数的一部分传递。

额外排查点

如果上述方法无效,再检查你的控制器代码:

  • 确认b参数是否正确添加了@RequestParam注解,且参数名拼写一致(比如不要写成B或者其他错误名称)
  • 确认没有意外设置required=false但代码逻辑里又依赖该参数的情况

内容的提问来源于stack exchange,提问作者worldsayshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 19:03:13