解决Springboot 2 的@RequestParam接收数组异常问题
Springboot 2 的@RequestParam接收数组异常
最近Vue 开发前端,然后向后台springboot 2 传递数组,发现springboot 2 接收数组方式无法使用
-- @RequestParam("ids[]") List<String> ids --
然后抛出以下异常,经过多轮验证发现@RequestParam("ids[]") 失效,无法使用(不知道是BUG,还是改了,之前可以的)
Resolved [org.springframework.web.bind.MissingServletRequestParameterException] Required String[] 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,也就是必然有参数,如果没参数会报错,不进入方法。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring注解@Autowired和@Resource的区别详解
这篇文章主要介绍了Spring注解@Autowired和@Resource的区别详解,@Autowired与@Resource都可以用来装配bean,都可以写在字段或setter方法上,@Resource是JDK提供的注解,默认按照名称进行装配,名称可通过name属性进行指定,需要的朋友可以参考下2023-12-12Maven中怎么手动添加jar包到本地仓库详解(repository)
这篇文章主要给大家介绍了关于Maven中怎么手动添加jar包到本地仓库的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2023-04-04
最新评论