学习SpringBoot过程中,参数这几个注解一直傻傻搞不清,今天做一个总结!
1. @PathVariable注解与@RequestParam注解
这两个注解开始搞混了,报了400的错还一直找不到,就放一起,便于对比区分。
@PathVariable:
作用:接收请求路径中占位符的值,举个栗子:
@RequestMapping("/user/{id}")
//请求地址"localhost:8080/user/{id}"
@PathVariable("id")Integer id
//@PathVariable注解就能接收到上面请求路径上传过来的{}中的参数
@RequestParam:
将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
语法:@RequestParam(value=”参数名”,defaultValue=””)
value:参数名
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
还有一个不怎么用的参数required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
用法示例:
url:"localhost:8080/user?id="
@RequestParam("id")Integer id
//接收id值
2. @RequestHeader
获取请求头,例如:
@RequestHeader("User-Agent") String userAgent
//获取请求头为"User-Agent"的请求
@RequestHeader Map<String,String> header
//获取所有请求头的请求
3. @ModelAttribute
注释@ModelAttribute的方法会在此Controller每个方法前执行,如下,test方法会在下面两个方法运行前往model中添加。
@Controller
public class TestController{
@ModelAttribute
public void test(Model model) {
model.addAttribute("username", lby);
}
@RequestMapping(value = "/hello1")
public String helloWorld1() {
return "hello";
}
@RequestMapping(value = "/hello2")
public String helloWorld2() {
return "hello";
}
4. @RequestBody
可以参考一下下文:
https://www.cnblogs.com/zly123/p/10853049.html