javascript
springboot接收多对象_SpringBoot同时接收单个对象和List<object>参数
最近作項(xiàng)目的有個(gè)需求,是把多個(gè)文件移動(dòng)到另外一個(gè)文件夾下,這須要把前端
新的文件夾id -- Long類(lèi)型
多個(gè)文件的信息 -- List< Object > 類(lèi)型
這兩個(gè)參數(shù)傳給后臺(tái),個(gè)人后臺(tái)是SpringBoot,怎么接收都不行,上網(wǎng)找了好久也找不到答案。json
單純地傳入Long類(lèi)型或者List< Object > 類(lèi)型我都會(huì),但兩個(gè)放一塊兒忽然就怎么試都報(bào)錯(cuò)。后端
過(guò)了一下子就想到了個(gè)奇葩的解決方案,雖然奇葩,可是可行,所以記錄一下,但愿能幫到遇到一樣問(wèn)題的小伙伴。app
解決方案
后端
@RequestMapping("/moveToFolder/{folderid}")
public int moveToFolder(@PathVariable("folderid") Long folderid,@RequestBody List contents) {
return 0;
}
@PathVariable 注解表示把上面的@RequestMapping("/moveToFolder/{folderid}")中的{folderid}的值注入?yún)?shù)folderid中。post
@RequestBody表示這個(gè)參數(shù)是一個(gè)JSON類(lèi)型,這樣SpringBoot不會(huì)把他當(dāng)成字符串去解析。url
前端要求
前端日后臺(tái)發(fā)送請(qǐng)求時(shí)要code
指定dataType: "json"
指定header: { 'content-type': 'application/json'}
指定method: "post"
在兩個(gè)參數(shù)中,將單個(gè)的參數(shù)拼接在請(qǐng)求的鏈接后,將List類(lèi)型用JSON.stringify轉(zhuǎn)成字符串后放在請(qǐng)求的參數(shù)中。
好比我上面提到的兩個(gè)參數(shù),就能夠這么傳字符串
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);
}
})
在我這個(gè)狀況中,若是不把文件id拎出來(lái)用@PathVariable注解去把它放在訪(fǎng)問(wèn)連接后面被接收,就會(huì)報(bào)錯(cuò),各類(lèi)報(bào)錯(cuò)。string
若是有什么沒(méi)看明白的能夠留言。io
總結(jié)
以上是生活随笔為你收集整理的springboot接收多对象_SpringBoot同时接收单个对象和List<object>参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql5.5.3下载_MySQL5.
- 下一篇: gradle idea java ssm