springmvc如何使用map接收參數(shù)
springmvc 使用map接收參數(shù)
開發(fā)過程中有時候我們并不知道前端都會傳遞哪些參數(shù)給到后端. 為方便擴展接口功能, 在請求參數(shù)不改變的情況下兼容前端新增的入參的需求, 我們會考慮使用map接受參數(shù). 這樣無論前端加減參數(shù), controller的入參是不需要變動的.
第一種情況:請求參數(shù)有多組
如:一組個人信息, 一組地址信息
請求參數(shù):
{ "personInfo": { "name1": "zona", "name2": "carl", "age": 23 }, "address": { "上海": "code1", "北京": "code2" } }
controller層代碼:
// map的value參數(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
否則不能自動打包前面的字段,其與模型驅動,屬性驅動不沖突,最多就是數(shù)據冗余
2、對于多個同名字段
map只會取第一個,不會變成字符數(shù)組,或用,隔開,此時只能用屬性驅動,或模型驅動
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
springboot2版本無法加載靜態(tài)資源問題解決
這篇文章主要介紹了springboot2版本無法加載靜態(tài)資源問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11java開源區(qū)塊鏈初始化創(chuàng)世區(qū)塊jdchain服務搭建
這篇文章主要介紹了java開源區(qū)塊鏈初始化創(chuàng)世區(qū)塊jdchain的服務搭建步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-02-02MybatisPlus保存、讀取MySQL中的json字段失敗問題及解決
這篇文章主要介紹了MybatisPlus保存、讀取MySQL中的json字段失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07