javascript
springboot接收多对象_SpringBoot同时接收单个对象和List<object>参数
最近作項目的有個需求,是把多個文件移動到另外一個文件夾下,這須要把前端
新的文件夾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
總結
以上是生活随笔為你收集整理的springboot接收多对象_SpringBoot同时接收单个对象和List<object>参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.5.3下载_MySQL5.
- 下一篇: html一级二级菜单,纯JS添加一级二级