解決Springboot 2 的@RequestParam接收數(shù)組異常問題
Springboot 2 的@RequestParam接收數(shù)組異常
最近Vue 開發(fā)前端,然后向后臺(tái)springboot 2 傳遞數(shù)組,發(fā)現(xiàn)springboot 2 接收數(shù)組方式無(wú)法使用
-- @RequestParam("ids[]") List<String> ids --
然后拋出以下異常,經(jīng)過多輪驗(yàn)證發(fā)現(xiàn)@RequestParam("ids[]") 失效,無(wú)法使用(不知道是BUG,還是改了,之前可以的)
Resolved [org.springframework.web.bind.MissingServletRequestParameterException] Required String[] parameter 'ids[]' is not present]
所以這里給出解決方式:
1、后端方法接收去除@RequestParam ,然后使用數(shù)組接收 例如:String[] ids
2、前端傳遞數(shù)組axios 需要使用 URLSearchParams 包裹數(shù)組
3、請(qǐng)求頭中參數(shù)傳遞顯示為如圖所示:
無(wú)論是axios還是ajax 只要請(qǐng)求頭傳遞格式是這樣的,后端用String[] ids 接收就行了
Springboot 的 用數(shù)組接參方法 Post接參 RequestParam
@RequestParam(value = "meetingIds",required = false)
其中value 的值隨傳參改變
加在接參方法的前邊,例:
public JSONObject getInfo(String searchText, @RequestParam(value = "meetingIds",required = false) List<Long> meetingIds){}
如果傳遞參數(shù)的格式是 meetingIds = 1,23,4,5 這樣的 則直接寫參數(shù)名meetingIds 即可;
有幾點(diǎn)需要注意:
1、如果是post傳參,前端直接傳數(shù)組類型的數(shù)據(jù),后臺(tái)接參需要吧value改為 meetingIds[] 注意括號(hào)
2、如果是參數(shù)有可能不傳,則需要設(shè)置required = false , 如果不寫,則默認(rèn)會(huì)是true,也就是必然有參數(shù),如果沒參數(shù)會(huì)報(bào)錯(cuò),不進(jìn)入方法。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java 使用多線程調(diào)用類的靜態(tài)方法的示例
這篇文章主要介紹了Java 使用多線程調(diào)用類的靜態(tài)方法的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-10-10Spring注解@Autowired和@Resource的區(qū)別詳解
這篇文章主要介紹了Spring注解@Autowired和@Resource的區(qū)別詳解,@Autowired與@Resource都可以用來裝配bean,都可以寫在字段或setter方法上,@Resource是JDK提供的注解,默認(rèn)按照名稱進(jìn)行裝配,名稱可通過name屬性進(jìn)行指定,需要的朋友可以參考下2023-12-12Maven中怎么手動(dòng)添加jar包到本地倉(cāng)庫(kù)詳解(repository)
這篇文章主要給大家介紹了關(guān)于Maven中怎么手動(dòng)添加jar包到本地倉(cāng)庫(kù)的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-04-04