前台传map参数,后台接受

今天在项目上遇到了一个小小的问题,在这里简单记录一下;

问题 : 在公司项目中有一个需要同时上传多张图片的功能, 那么后台接口就需要得到前台每个图片文件的'name'和'value'值;


解决 : 刚开始我想到使用的是list, 发现这样不能区分各个图片文件的'name', 然后想到使用map来接受参数, 让'name'值存到map的key中, 'value'值也就是图片对象,存到map集合的value中;

问题解决;

下面一起来分析一下使用map接受参数的方式:

首先Spring MVC和Spring Boot中的Controller方法都不能封装List或者Map类型的参数,所以要单独设定一个封装请求参数的类(MapRequestVO,类名随便起), 该类中只需要有一个Map类型的属性即可;

MapRequestVO内容:

import java.util.Map;

/**
 * @author luan
 * @create 2018-06-13 10:30
 * @desc 内容...
 **/
public class MapRequestVO {

    private Map<String,String> map;

    public Map<String, String> getMap() {
        return map;
    }

    public void setMap(Map<String, String> map) {
        this.map = map;
    }
}

Controller接口:

@RestController
public class MerchantIntoController {
    @PostMapping("/mapTest")
    public void mapTest(MapRequestVO map) {
        System.out.println(JSON.toJSONString(map));
    }
}

使用postman访问该路径,并且传递map[key1] = value1 ... 格式的参数,查看控制台打印结果:

参数 :

扫描二维码关注公众号,回复: 1781205 查看本文章

控制台打印 :


这样就可以接受前台传递Map格式的参数了!!!

注 : 如有不足之处, 欢迎各位朋友评论留言!!!

猜你喜欢

转载自blog.csdn.net/luan666/article/details/80675040