最近作项目的有个需求,是把多个文件移动到另外一个文件夹下,这须要把前端
新的文件夹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