解決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,也就是必然有參數,如果沒參數會報錯,不進入方法。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot解決Required String parameter xxx is not present問題
- 關於@RequestParam的使用所遇到的404問題
- 處理@PathVariable註解允許參數為空、允許不傳參數的問題
- 淺談@RequestParam 參數是否必須傳的問題
- @RequestParam 接收參數的值為null的處理方式