• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

解决Springboot 2 的@RequestParam接收数组异常问题

springboot 搞代码 4年前 (2022-01-09) 27次浏览 已收录 0个评论
文章目录[隐藏]

Springboot 2 的@RequestParam接收数组异常

最近Vue 开发前端,然后向后台springboot 2 传递数组,发现springboot 2 接收数组方式无法使用

-- @RequestParam("ids[]") List<String> ids --

然后抛出以下异常,经过多轮验证发现@RequestParam(“ids[]”) 失效,无法使用(不知道是BUG,还是改了,之前可以的)

Resolved [org.springframework.web.bind.MissingServletRequestParameterException] Required Strin本文来源gao@!dai!ma.com搞$$代^@码5网@g[] parameter ‘ids[]’ is not present]

所以这里给出解决方式:

1、后端方法接收去除@RequestParam ,然后使用数组接收 例如:String[] ids

2、前端传递数组axios 需要使用 URLSearchParams 包裹数组

3、请求头中参数传递显示为如图所示:

无论是axios还是ajax 只要请求头传递格式是这样的,后端用String[] ids 接收就行了

Springboot 的 用数组接参方法 Post接参 RequestParam

@RequestParam(value = "meetingIds",required = false)

其中value 的值随传参改变

加在接参方法的前边,例:

public  JSONObject getInfo(String searchText, @RequestParam(value = "meetingIds",required = false) List<Long> meetingIds){}

如果传递参数的格式是 meetingIds = 1,23,4,5 这样的 则直接写参数名meetingIds 即可;

有几点需要注意:

1、如果是post传参,前端直接传数组类型的数据,后台接参需要吧value改为 meetingIds[] 注意括号

2、如果是参数有可能不传,则需要设置required = false , 如果不写,则默认会是true,也就是必然有参数,如果没参数会报错,不进入方法。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决Springboot 2 的@RequestParam接收数组异常问题

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址