服务器之家

服务器之家 > 正文

springmvc如何使用map接收参数

时间:2022-03-05 15:14     来源/作者:changerzhuo

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层接受参数:

springmvc如何使用map接收参数

第二种情况:所有的参数不分组

请求参数:

{
  "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层接受参数

springmvc如何使用map接收参数

 

用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只会取第一个,不会变成字符数组,或用,隔开,此时只能用属性驱动,或模型驱动

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/changerzhuo_319/article/details/104426846

标签:

相关文章

热门资讯

2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
返回顶部