springmvc如何使用map接收参数
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
}
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只会取第一个,不会变成字符数组,或用,隔开,此时只能用属性驱动,或模型驱动
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Elasticsearch开发AtomicArray使用示例探究
这篇文章主要为大家介绍了Elasticsearch AtomicArray使用示例探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-08-08
Java concurrency之公平锁(二)_动力节点Java学院整理
这篇文章主要为大家详细介绍了Java concurrency之公平锁的第二篇内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-06-06
spring中使用mybatis plus连接sqlserver的方法实现
这篇文章主要介绍了spring中使用mybatis plus连接sqlserver的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
SpringBoot整合RedisTemplate实现缓存信息监控的步骤
这篇文章主要介绍了SpringBoot整合RedisTemplate实现缓存信息监控,一步一步的实现 Springboot 整合 Redis 来存储数据,读取数据,需要的朋友可以参考下2022-01-01


最新评论