@RequestParam @RequestBody @PathVariable用法小结
程序员文章站
2022-06-17 09:06:37
...
@RequestParam
- @RequestParam接收的参数是来自于RequestHeader中,即请求头。
@RequestParam用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容,Content-Type默认为该属性。
一般用于Get请求,常见的URL:http://localhost:8080/test/findByIdAndName?id=1&name=zhangsan”
后端:
@RequestMapping("findById")
public Student findByIdAndName(@RequestParam("id") long id, @RequestParam("name") String name) {
return null;
}
- @RequestParam也可以用Post类型的请求,比如向表单插入单条数据,但是这样不支持批量插入数据。
例如:
前端请求
后端参数接收:后端使用集合来接受参数,灵活性较好,如果url中没有对参数赋key值,后端在接收时,会根据参数值的类型附,赋一个初始key(String、long ……)
@RequestBody
- @RequestBody接收的参数是来自RequestBody中,即请求体。
- @RequestBody一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据。
- 一般用于Post请求,它把前端的json数据传到后端,后端进行解析。
例如:
后端:
@RequestMapping("save")
public void save(@RequestBody Student student) {
studentRepository.saveOrUpdate(student);
}
@PathVariable
- 使用@PathVariable接收参数,参数值需要在url进行占位,前端传参的URL
- 一般也是用于Get请求,URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx“) 绑定到操作方法的入参中。
例如:localhost:8010/student/findById/1
后端:
@GetMapping("findById/{id}")
public Student findById(@PathVariable("id") long id) {
return studentRepository.findById(id);
}
推荐阅读
-
@PathVariable、@RequestParam和@RequestBody的区别
-
@RequestParam @RequestBody @PathVariable用法小结
-
@RequestParam和@RequestBody和@PathVariable用法小结
-
@PathVariable,@RequestParam,@RequestBody类型使用
-
@RequestParam、@RequestBody和@PathVariable
-
关于 @PathVariable @RequestParam @RequestBody
-
@RequestBody、@RequestParam 、@PathVariable、@RequestPart
-
@RequestParam、@PathVariable()、@RequestBody 的使用
-
Spring MVC代码实例系列-03:@PathVariable、@RequestHeader、@RequestParam、@RequestBody、@ModelAttribute等
-
@PathVariable与@RequestParam的用法