注:本文仅做个人总结用,转载本博客文章时请注明出处
下面的前后端交互传参,有个大前提,前端的Request Headers 的Content-Type
不是 application/json
而是 application/x-www-form-urlencoded
1.后端获取数组
$axios.get('test/mvc/array?strs=111&strs=2222&strs=3333')
$axios.get('test/mvc/array?strs=111,2222,333')
@RequestMapping("array")
public Object array(String[] strs){
return strs;
}
2.后端获取List,Set集合,泛型可以不指定,默认String字符串,而且必须加注解@RequestParam
$axios.get('test/mvc/list?list=111&list=2222&list=3333')
$axios.get('test/mvc/list?list=111,2222,333')
@RequestMapping("list")
public Object list(@RequestParam List<String> list){
return strs;
}
3.后端获取Map键值对,Map的泛型指定无用,K,V均是String, 而且必须加注解@RequestParam,有多个key值相同时,value取第一个出现的值
$axios.get('test/mvc/map?list=111&list=2222&list=3333&a=aa&b=bb')
@RequestMapping("map")
public Object map(@RequestParam Map map){
return map;
}
返回结果
{"list":"111","a":"aa","b":"bb"}
4.后端用对象获取
@RequestMapping("dto")
public Object dto(SelfDefineDto dto){
return dto;
}
public class SelfDefineDto {//自定义Dto
private Date date;
private String[] array;
private List<String> list;
private Set<Integer> list;
private Map<String,Object> list;
private List<Map<String,Object>> mapList;
private String str;
private Integer integer;
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
private Date dateStr;
}
4.1数组,List,Set集合,其中Set集合不能用第三种下标[n]
$axios.get('test/mvc/dto?list=111&list=2222&list=3333')
$axios.get('test/mvc/dto?list=111,2222,3333')
$axios.get('test/mvc/dto?list[0]=111&list[1]=2222&list[3]=3333')
4.2 map键值对
$axios.get('test/mvc/dto?map[a]=a&map[a]=aa&map[b]=bb&map[c]=33')
{"map":{"a":["a","aa"],"b":"bb","c":"33"}
4.3 map键值对集合
$axios.get('test/mvc/dto?mapList[0][a]=a&mapList[0][a]=aa&map[b]=bb&mapList[0][c]=33')
{"mapList":[{"a":["a","aa"],"b":"bb","c":"33"}]}
4.4 对象用.属性
$axios.get('test/mvc/dto?user.id=1&user.username=jack')
{"user":{"id":1,"username:"jack","age":null}