SpringBoot参数注解
常用参数注解
- @RequestParm
- @PathVariable
- @RequestHeader
- @CookieValue
- @Requestbody
1.请求参数注解:@RequestParm
用途:用于将方法参数绑定到URI查询参数或者表单参数。他可以帮助我们或者HTTP请求中的参数值并将其作为方法的参数进行处理
注意:当url请求参数与变量名一致,可以不用此注解
参数 | 作用 |
---|---|
value | 设置请求参数的名称 |
required | 指示参数是否必须。默认为 true,如果设置为 false,则该参数可以为空。 |
defaultValue | 如果请求中没有提供参数,或者参数为 null,则使用此默认值 |
type | 指定参数应该绑定到的目标类型,默认情况下,Spring MVC 会自动推断类型 |
@RestController
public class TestController {@GetMapping("/getRequestParam")public String test(@RequestParam(value = "username",required = false,defaultValue = "aaa") String name){return "hello " + name;}
}
(1)当我们请求url:http://localhost:8080/getRequestParam 或者http://localhost:8080/getRequestParam?name=wangwu 时,因为我们设置了value = “username”,required = false,defaultValue = “aaa”,因此最后结果为hello aaa
(2)当我们请求url:http://localhost:8080/getRequestParam?username=wangwu时,最后结果为hello wangwu
2.路径参数注解@PathVariable
用途:用于将方法参数绑定到URI路径中作为路径参数
属性 | 作用 |
---|---|
value | 设置请求参数的名称 |
required | 指示参数是否必须。默认为 true,如果设置为 false,则该参数可以为空。 |
@GetMapping("/getPathVariable/{username}")public String test2(@PathVariable(value = "username",required = false) String name){return "hello " + name;}
请求url:http://localhost:8080/getPathVariable/zhangsan
输出:hello zhangsan
3.头部参数注解@RequestHeader
用途:用于将 HTTP 请求头(header)中的数据绑定到控制器处理方法的参数上
参数 | 作用 |
---|---|
value | 设置请求参数的名称 |
required | 指示参数是否必须。默认为 true,如果设置为 false,则该参数可以为空。 |
defaultValue | 如果请求中没有提供参数,或者参数为 null,则使用此默认值 |
//方式1@GetMapping("/getRequestHeader")public String test3(@RequestHeader(value = "token",required = false,defaultValue = "aaa") String token){return "hello " + token;}
//方式2@GetMapping("/getRequestHeader2")public String test3(HttpServletRequest request){return "hello " + request.getHeader("token");}
请求url:http://localhost:8080/getRequestHeader?token=davghvadad
结果:hello fasfbafsa
4.@CookieValue
用途:用于将 HTTP 请求中的 Cookie 值绑定到控制器方法的参数上
参数 | 作用 |
---|---|
value | 设置请求参数的名称 |
required | 指示参数是否必须。默认为 true,如果设置为 false,则该参数可以为空。 |
defaultValue | 如果请求中没有提供参数,或者参数为 null,则使用此默认值 |
@GetMapping("/getCookieValue")public String test4(@CookieValue(value = "sessionId",required = false,defaultValue = "aaa") String sessionId){return "hello " + sessionId;}
5.@Requestbody
用途:用于接收json数据
@GetMapping("/getRequestBody")public Map<String,Object> test5(@RequestBody Map<String,Object> user){return user;}
传入json参数:
{"name":"zahngsan"
}
输出:
{"name": "zahngsan"
}