springmvc 使用map接收参数

本文探讨了在开发过程中如何通过使用Map作为Controller层的入参来实现后端接口对前端新增参数的兼容性。两种场景被详细阐述:一是请求参数包含多组信息,如个人信息和地址信息;二是所有参数不分组。这种做法允许在不修改Controller代码的情况下,方便地扩展接口功能,以适应前端动态变化的参数需求。
摘要由CSDN通过智能技术生成

开发过程中有时候我们并不知道前端都会传递哪些参数给到后端.为方便扩展接口功能, 在请求参数不改变的情况下兼容前端新增的入参的需求, 我们会考虑使用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层接受参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC 中的 Map 和 Model 都是用来传递数据给视图的对象。 1. MapMap 是一个接口,它用于存储键值对。在 Spring MVC 中,可以将 Map 对象作为方法的参数,Spring 会自动将模型数据放入到 Map 中,然后传递给视图。在视图中,可以通过键来获取对应的值。例如: ```java @RequestMapping("/example") public String example(Map<String, Object> model) { model.put("message", "Hello, World!"); return "exampleView"; } ``` 在上述代码中,`model` 是一个 Map 对象,`example` 方法将 "message" 作为键,"Hello, World!" 作为值放入到 `model` 中。然后返回的字符串 "exampleView" 将作为视图名称,Spring MVC 会根据视图名称找到对应的视图进行渲染。 2. Model:Model 是一个接口,它是 Map 接口的子接口,提供了更多的方法来操作模型数据。在 Spring MVC 中,可以将 Model 对象作为方法的参数,Spring 会自动创建一个 Model 对象,并将模型数据放入其中,然后传递给视图。与 Map 类似,可以通过键来获取对应的值。例如: ```java @RequestMapping("/example") public String example(Model model) { model.addAttribute("message", "Hello, World!"); return "exampleView"; } ``` 在上述代码中,`model` 是一个 Model 对象,`addAttribute` 方法用于向模型中添加属性和值。然后返回的字符串 "exampleView" 将作为视图名称,Spring MVC 会根据视图名称找到对应的视图进行渲染。 总结:无论是使用 Map 还是 Model,都可以将数据传递给视图。在视图中,可以使用键来获取对应的值进行展示。而在控制器方法中,我们可以使用 Map 或 Model 对象来添加模型数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值