- 可以接收单个参数,
- 可以把接收的参数转换为对象,
- 可以接收同样的参数多个(?age=10&age=20),使用数组来接收
@GetMapping("/t1")
public String test01(String name){
System.out.println("接收的前端参数:"+name);
return null;
}
@RequestMapping("/t2")
public String test02(User user){
System.out.println(user);
return null;
}
@RequestMapping("/get_post/get02")
@ResponseBody
public String get02(String[] username){
System.out.println(username.length);
return null;
}
发送请求://http://localhost:8080/1203/user/t2?id=1&name=jack&age=20 如果传入参数的名字和方法上的参数名字不匹配则接收不到数据
- 接收参数的变量名可以和传入的名字不一样
- 可以接收多个参数
- 可以设置默认值
- 如果不加required属性,默认为 true,也就是说,当@RequestParam存在时,是默认required = true条件的,当接收参数不匹配时,会报错;设置为false时表示可以不传参
@GetMapping("/t1")
public String test01(@RequestParam("username")String name){
System.out.println("接收的前端参数:"+name);
return null;
}
@GetMapping("/t1")
public String get03(@RequestParam(value = "username",required = false) List<String> username){
System.out.println(username);
return username.toString();
}
- 其他的一些接收参数的注解:@PathVariable、@PathParam、@RequestParam
- @RequestParam 是从request里面拿取值;@PathVariable 和 @PathParam 是从一个URI模板里面来填充
- @PathVariable
这个注解能够识别URL里面的一个模板,我们看下面的一个URL http://localhost:8080/springmvc/hello/101?param1=10¶m2=20 上面的一个url你可以这样写:
@RequestMapping("/hello/{id}")
public String getDetails(@PathVariable(value="id") String id,
@RequestParam(value="param1", required=true) String param1,
@RequestParam(value="param2", required=false) String param2){
.......
}
- @PathParam
这个注解是和spring的pathVariable是一样的,也是基于模板的,但是这个是jboss包下面的一个实现,上面的是spring的一个实现,都要导包
|