springmvc如何使⽤map接收参数
⽬录
springmvc 使⽤map接收参数
第⼀种情况:请求参数有多组
第⼆种情况:所有的参数不分组
⽤map接收参数的⼏个注意的问题
1、接受map的参数不能写value
2、对于多个同名字段
springmvc 使⽤map接收参数
开发过程中有时候我们并不知道前端都会传递哪些参数给到后端. 为⽅便扩展接⼝功能,在请求参数不改变的情况下兼容前端新增的⼊参的需求,我们会考虑使⽤map接受参数. 这样⽆论前端加减参数, controller的⼊参是不需要变动的.
第⼀种情况:请求参数有多组
如:⼀组个⼈信息,⼀组地址信息
请求参数:
{
"personInfo": {
"name1": "zona",
"name2": "carl",
"age": 23
},
"address": {
"上海": "code1",
"北京": "code2"
}
}
controller层代码:
// map的value参数类型设置为object
@PostMapping("/map")
public void map(@RequestBody Map<String, Object> mapParam){
System.out.println(mapParam);
}
controller层接受参数:
第⼆种情况:所有的参数不分组
请求参数:
{
"name1": "zona",
"name2": "carl",
"age": 23
菜鸟教程springmvc}
controller层代码
// map的value类型是String
@PostMapping("/map")
public void map(@RequestBody Map<String, String> mapParam){
System.out.println(mapParam);
}
controller层接受参数
⽤map接收参数的⼏个注意的问题
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的参数不能写value
否则不能⾃动打包前⾯的字段,其与模型驱动,属性驱动不冲突,最多就是数据冗余
2、对于多个同名字段
map只会取第⼀个,不会变成字符数组,或⽤,隔开,此时只能⽤属性驱动,或模型驱动
以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。