开发过程中有时候我们并不知道前端都会传递哪些参数给到后端.为方便扩展接口功能, 在请求参数不改变的情况下兼容前端新增的入参的需求, 我们会考虑使用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在控制器层实现请求参数的动态兼容,包括按组接收个人信息和地址信息,以及无组情况下统一处理所有参数。通过实例讲解了不同类型Map的使用,确保后端代码的稳定扩展性。

6587

被折叠的 条评论
为什么被折叠?



