SpringMVC前后端交互传参

注:本文仅做个人总结用,转载本博客文章时请注明出处

下面的前后端交互传参,有个大前提,前端的Request HeadersContent-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")

    publicObject 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")

    publicObject 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")

    publicObject map(@RequestParam Map map){

       return map;

    }

返回结果

{"list":"111","a":"aa","b":"bb"}

 

 

4.后端用对象获取

@RequestMapping("dto")

    publicObject dto(SelfDefineDto dto){

       return dto;

    }

public class SelfDefineDto {//自定义Dto

   private Date date;

   private String[] array;

   privateList<String> list;

privateSet<Integer> list;

privateMap<String,Object> list;

privateList<Map<String,Object>> mapList;

   private String str;

   private Integer integer;

   @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

   private DatedateStr;

}

 

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}

 


版权声明:本文为m0_37893319原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。