springmvc如何使用map接收參數(shù)
springmvc 使用map接收參數(shù)
開發(fā)過程中有時候我們并不知道前端都會傳遞哪些參數(shù)給到后端. 為方便擴展接口功能, 在請求參數(shù)不改變的情況下兼容前端新增的入?yún)⒌男枨螅?我們會考慮使用map接受參數(shù). 這樣無論前端加減參數(shù), controller的入?yún)⑹遣恍枰儎拥?
第一種情況:請求參數(shù)有多組
如:一組個人信息, 一組地址信息
請求參數(shù):
{ "personInfo": { "name1": "zona", "name2": "carl", "age": 23 }, "address": { "上海": "code1", "北京": "code2" } }
controller層代碼:
// map的value參數(shù)類型設(shè)置為object @PostMapping("/map") public void map(@RequestBody Map<String, Object> mapParam){ System.out.println(mapParam); }
controller層接受參數(shù):
第二種情況:所有的參數(shù)不分組
請求參數(shù):
{ "name1": "zona", "name2": "carl", "age": 23 }
controller層代碼
// map的value類型是String @PostMapping("/map") public void map(@RequestBody Map<String, String> mapParam){ System.out.println(mapParam); }
controller層接受參數(shù)
用map接收參數(shù)的幾個注意的問題
public void TbConOrdPriceSubmit(@RequestParam(value="cdListKeyArrayFront",required=false) String[] cdListKeyArrayFront,@RequestParam(required=false) Map parMap, HttpSession session, HttpServletRequest request, HttpServletResponse response, Model model, TbConOrdVo tbConOrdVo)
1、接受map的參數(shù)不能寫value
否則不能自動打包前面的字段,其與模型驅(qū)動,屬性驅(qū)動不沖突,最多就是數(shù)據(jù)冗余
2、對于多個同名字段
map只會取第一個,不會變成字符數(shù)組,或用,隔開,此時只能用屬性驅(qū)動,或模型驅(qū)動
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot2版本無法加載靜態(tài)資源問題解決
這篇文章主要介紹了springboot2版本無法加載靜態(tài)資源問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11深入淺出探究Java多態(tài)的實現(xiàn)和應(yīng)用
多態(tài)是實現(xiàn)面向?qū)ο蟮能浖夹g(shù)中必不可少的一個內(nèi)容,所以這篇文章主要來和大家講解一下Java多態(tài)的實現(xiàn)和應(yīng)用,感興趣的小伙伴可以了解一下2023-07-07java開源區(qū)塊鏈初始化創(chuàng)世區(qū)塊jdchain服務(wù)搭建
這篇文章主要介紹了java開源區(qū)塊鏈初始化創(chuàng)世區(qū)塊jdchain的服務(wù)搭建步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-02-02MybatisPlus保存、讀取MySQL中的json字段失敗問題及解決
這篇文章主要介紹了MybatisPlus保存、讀取MySQL中的json字段失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07