@RequestParam @RequestBody @PathVariable用法小结

@RequestParam

  1. @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;
    }
  1. @RequestParam也可以用Post类型的请求,比如向表单插入单条数据,但是这样不支持批量插入数据。

例如:
前端请求
@RequestParam @RequestBody @PathVariable用法小结_第1张图片
后端参数接收:后端使用集合来接受参数,灵活性较好,如果url中没有对参数赋key值,后端在接收时,会根据参数值的类型附,赋一个初始key(String、long ……)@RequestParam @RequestBody @PathVariable用法小结_第2张图片


@RequestBody

  • @RequestBody接收的参数是来自RequestBody中,即请求体。
  • @RequestBody一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据。
  • 一般用于Post请求,它把前端的json数据传到后端,后端进行解析。

例如:
@RequestParam @RequestBody @PathVariable用法小结_第3张图片
后端:

    @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);
    }

你可能感兴趣的:(Java,java,spring)