天天看點

SpringMVC前後端互動傳參

注:本文僅做個人總結用,轉載本部落格文章時請注明出處

下面的前後端互動傳參,有個大前提,前端的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}

繼續閱讀