url格式的请求参数类型:
基本数据类型、String
@RequestMapping("/commonParam") @ResponseBody public String commonParam(String name ,int age){ System.out.println("普通参数传递 name ==> "+name); System.out.println("普通参数传递 age ==> "+age); return "commonParam"; }
Pojo类型
@RequestMapping("/pojoContainPojoParam") @ResponseBody public String pojoContainPojoParam(User user){ System.out.println("pojo嵌套pojo参数传递 user ==> "+user); return "pojoContainPojoParam"; }
请求参数名字 和 实体类中属性名 一致特殊:嵌套pojo请求参数名格式: 对象名.成员变量名
数组类型
@RequestMapping("/arrayParam") @ResponseBody public String arrayParam(String[] likes){ System.out.println("数组参数传递 likes ==> "+ Arrays.toString(likes)); return "arrayParam"; }
请求参数名字 和 数组名 一致(请求参数名字相同,值有多个)
集合类型
@RequestMapping("/listParam") @ResponseBody public String listParam(@RequestParam List<String> likes){ System.out.println("集合参数传递 likes ==> "+ likes); return "listParam"; }
请求参数名字 和 集合对象名 一致(请求参数名字相同,值有多个)
要想要把请求参数映射到集合对象中,要使用:@RequestParam
json类型
json常见的形式
//- json对象 User {"name":"zs","age" : 18} //- json数组 String[] ["a","b","c"] //- json数组(POJO) List<User> [{"name":"zs","age" : 18},{"name":"ls","age":19}]
<--需要的依赖--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version> </dependency> <--开启json数据自动转换的注解--> @EnableWebMvc
pojo类型 参数传递需要在参数前添加 @RequestBody注解
@RequestMapping("/pojoParamForJson") @ResponseBody public String pojoParamForJson(@RequestBody User user){ System.out.println("pojo(json)参数传递 user ==> "+user); return "pojoParamForJson"; }
POJO集合参数:json数组数据与集合泛型属性名相同 (定义List类型形参即可接收参数)
@RequestMapping("/listPojoParamForJson") @ResponseBody public String listPojoParamForJson(@RequestBody List<User> list){ System.out.println("list pojo(json)参数传递 list ==> "+list); return "listPojoParamForJson"; }
总结:
url格式请求参数
@RequestParam (接收集合类型的参数)
json格式请求参数
@EnableWebMvc //开启webmvc功能(功能之一: 自动实现json和pojo转换)
@RequestBody //在参数前面添加,用于接收json格式参数映射到pojo上