@RequestParam,@PathVariable等注解区别

时间:2023-03-08 20:22:13

一、@RequestParam和@PathVariable的区别

1、@RequestParam是从uri中request后面的参数串来取得参数的

2、@PathVariable是从uri模板中取得参数的

例子:

uri:http://localhost:8080/springmvc/hello?param1=10&param2=20

@RequestParam抓取的是后面的param1和param2


@RequestMapping("/hello")
public String getDetails(
@RequestParam(value="param1", required=true) String param1,
@RequestParam(value="param2", required=false) String param2){
...
}

uri:http://localhost:8080/springmvc/hello/101?param1=10&param2=20   

@PathVariable抓取的是模板中的101

@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){
.......
}

二、@ResponseBody   @RequestBody

@ResponseBody

responseBody表示服务器返回的时候以一种什么样的方式进行返回, 将内容或对象作为 HTTP 响应正文返回,值有很多,一般设定为json

@RequestBody

一般是post请求的时候才会使用这个请求,把参数丢在requestbody里面