springboot接收参数的几种方式
2023-02-15 09:15:03
1、四种传参方式
1.1、params
传参格式:?号传参,在地址栏上加参数
http://localhost:8080?参数名=值&参数名=值
1.2、body
传参格式:请求体传参
http://localhost:8080/core/books
1.3、json
json传参也是在body当中,只不过json是一种数据格式,后端可以用@RequestBody接收。
1.4、地址栏
地址栏传参,直接通过/在地址上拼接参数值,这种方式不需要在地址栏上写参数名,后端只需要知道他在地址的哪个位置传的参数就可以拿到值
第一种:@RequestParam注解
一、作用: 将指定的请求参数赋值给方法中的形参。
二、接收形式: Get传参请求。
三、属性:
(1)value :绑定请求的参数名,默认绑定为同名的形参;
(2)required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报错;
(3)defaultValue:默认值,表示如果请求中没有接收到值时的默认值。
四、用法示例:
@GetMapping("/test")
public void test(@RequestParam(required = true)String name,@RequestParam(defaultValue = "20")Integer age) {
System.out.println("name:"+name+",age:"+age);
}
第二种:@PathVariable注解
一、作用: 接收请求路径中占位符的值。
二、接收形式: Get路径请求。
三、属性: value:String类型,绑定请求的参数名,默认绑定为同名的形参。
四、用法示例:
@GetMapping("/selectOne/{id}")
public void test(@PathVariable Integer id) {
System.out.println("id:"+id);
}
第三种:@RequestBody注解
一、作用: 接收前端传递的Json对象的字符串。
二、接收形式: Post请求。
三、用法示例:
@PostMapping("/test")
public void test(@RequestBody User user){
System.out.println("user:"+user);
}