1、普通参数
//普通参数:请求参数名与形参名不同@RequestMapping("/commonParamDifferentName")@ResponseBodypublic String commonParamDifferentName(@RequestParam("name") String username, int age){System.out.println("普通参数传递:username:"+username+",age:"+age);return "{'module':'common param differenet name'}";}
@RequestParam 相当于给对应的形参起了一个别名,用来接受url中 name对应的值:
xxxx?name=xx&age=xx或是xxxx?username=xx&age=xx 都是一样的效果
2、对引用类型
@RequestMapping("/pojoParam")@ResponseBodypublic String PojoParam(User user){System.out.println("pojo类型参数传递:user:"+user);return "{'module':'pojo param'}";}//嵌套pojo参数(一个pojo对象中包含其他的pojo对象,User中包含address)@RequestMapping("/pojoContainParam")@ResponseBodypublic String pojoContainParam(User user){System.out.println("pojo嵌套类型参数传递:user"+user);return "{'module':'pojoContainParam'}";}
在SpringMVC下,获取pojo参数只需要把对应的值发送请求即可。
会自动创建一个对象来接受url中的数据,比如:
user中的属性 address中的属性
当url中为:xx?name=xx&age=&xx&address.province=xx&address&city=xx这样的请求信息提交后,会自动创建一个user对象来接收这些数据装配成一个user对象。
3、数组和集合
//数组@RequestMapping("/arrayParam")@ResponseBodypublic String arrayParam(String[] likes){System.out.println("数组传递参数:likes"+ Arrays.toString(likes));return "{'module':'array param'}";}//集合参数@RequestMapping("/listParam")@ResponseBodypublic String listParam(@RequestParam List<String> likes){System.out.println("集合参数传递:"+likes);return "{'module':'listParam'}";}
在集合参数传递时,第一次不加@RequestParam注解产生的错误:
意思是List 没有构造方法。
对@RequestParam的认识:当有这个注解的时候,不会创建一个对象来接受url中的数据,即将数据作为参数放入集合即可。