注:本文僅做個人總結用,轉載本部落格文章時請注明出處
下面的前後端互動傳參,有個大前提,前端的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}