springboot接收多对象_SpringBoot同时接收单个对象和List<object>参数

在SpringBoot项目中,需要接收一个Long类型的文件夹ID和一个List<Object>类型的文件信息列表。遇到的问题是当两者一起传递时出现错误。解决方案是使用@PathVariable注解接收Long类型参数,@RequestBody注解接收List类型参数。前端在发送POST请求时,需指定dataType为"json",header为'content-type': 'application/json',并将List类型数据转化为JSON字符串。通过这种方式,可以成功将两个参数传递给后端。
摘要由CSDN通过智能技术生成

最近作项目的有个需求,是把多个文件移动到另外一个文件夹下,这须要把前端

新的文件夹id -- Long类型

多个文件的信息 -- List< Object > 类型

这两个参数传给后台,个人后台是SpringBoot,怎么接收都不行,上网找了好久也找不到答案。json

单纯地传入Long类型或者List< Object > 类型我都会,但两个放一块儿忽然就怎么试都报错。后端

过了一下子就想到了个奇葩的解决方案,虽然奇葩,可是可行,所以记录一下,但愿能帮到遇到一样问题的小伙伴。app

解决方案

后端

@RequestMapping("/moveToFolder/{folderid}")

public int moveToFolder(@PathVariable("folderid") Long folderid,@RequestBody List contents) {

return 0;

}

@PathVariable 注解表示把上面的@RequestMapping("/moveToFolder/{folderid}")中的{folderid}的值注入参数folderid中。post

@RequestBody表示这个参数是一个JSON类型,这样SpringBoot不会把他当成字符串去解析。url

前端要求

前端日后台发送请求时要code

指定dataType: "json"

指定header: { 'content-type': 'application/json'}

指定method: "post"

在两个参数中,将单个的参数拼接在请求的链接后,将List类型用JSON.stringify转成字符串后放在请求的参数中。

好比我上面提到的两个参数,就能够这么传字符串

wx.request({

url: "localhost:8080/folder/moveToFolder/"+folderid,

data: JSON.stringify(contents),

method: "post",

dataType: "json",

header: {

'content-type': 'application/json'

},

success (res) {

console.log(res);

}

})

在我这个状况中,若是不把文件id拎出来用@PathVariable注解去把它放在访问连接后面被接收,就会报错,各类报错。string

若是有什么没看明白的能够留言。io

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值