今天在项目上遇到了一个小小的问题,在这里简单记录一下;
问题 : 在公司项目中有一个需要同时上传多张图片的功能, 那么后台接口就需要得到前台每个图片文件的'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 查看本文章
![](/qrcode.jpg)
控制台打印 :
这样就可以接受前台传递Map格式的参数了!!!
注 : 如有不足之处, 欢迎各位朋友评论留言!!!