@RequestParam,@PathVariable等注解区别
一、@RequestParam和@PathVariable的区别
1、@RequestParam是从uri中request后面的参数串来取得参数的
2、@PathVariable是从uri模板中取得参数的
例子:
uri:http://localhost:8080/springmvc/hello?param1=10¶m2=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¶m2=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里面