Springboot中RestController中接收参数的注解:
- @RequestHeader
主要用来获取发起http请求时候,header头的传递参数:
类似于:
假如我在header头中添加了一个token参,那么在后端需要获取token的值然后进行验证之类的,就可以这样获取:
@RequestHeader("token") String token
- @RequestBody
主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),所以一般应用到POST/PUT提交方法。也就是前端提交form表单数据的json格式。
前端需要设置header头为的content-type设置为application/json;charset=UTF-8,并且需要将数据转成json对象,例如:
header: {
contentType: 'application/json;charset=UTF-8'
}
一般会这样用, 加上javax.validation.Valid包中的 @Valid 注解,接收参数的同时验证传递参数是否完整
@RequestBody @Valid Form form
- @RequestAttribute
这个参数解释起来比较麻烦,RequestAttribute 是获取request中某个属性的值。那么只能从三个方面获取到:
@ModelAttribute
注解预存HandlerInterceptor
拦截器中预存- 请求转发带过来
跟获取params 参数不一样,具体有什么作用现在还不清楚。
具体可以参考:
- https://blog.csdn.net/m0_37479246/article/details/79025588
- https://blog.csdn.net/f641385712/article/details/98508272
- RequestParam
这个使用来获取key-value格式传递的参数,例如GET方式中http://xxxx?token=12321或者是http://ssss?page=1,中可以用RequestParam获取到对应key的value。
@RequestParam(value="keyname", request=false, defaultValue="zhangsan")
- @PathVariable
这个是获取url中参数对应的值,必须与RequestMapping中的占位符保持一致,不然会报错。
@GetMapping("/detail/{id}")
public void getData(@PathVariable("id") Long id) {}