@RequestPart 和@RequestParam的区别

发布时间:2024年01月22日

在 Spring Boot 中,@RequestPart@RequestParam 注解都可以用于接收客户端提交的数据,但它们有一些区别。

@RequestParam 注解用于获取请求参数的值,常用于接收简单的表单数据。它可以用来接收 URL 查询参数、表单字段以及多部分表单提交的数据。当使用 @RequestParam 时,请求的 Content-Type 应该是 application/x-www-form-urlencodedmultipart/form-data

示例:

@PostMapping("/example")
public void example(@RequestParam("name") String name,
                    @RequestParam("age") int age) {
    // 处理请求参数
}

@RequestPart 注解用于从请求中获取一个或多个部分(part)。它主要用于处理多部分表单提交的数据,例如上传文件。当使用 @RequestPart 时,请求的 Content-Type 应该是 multipart/form-data

示例:

@PostMapping("/upload")
public void upload(@RequestPart("file") MultipartFile file,
                   @RequestPart("metadata") String metadata) {
    // 处理上传的文件和元数据
}

总结区别:

  • @RequestParam?用于获取请求参数的值,适用于接收简单的表单数据。
  • @RequestPart?用于获取请求的部分(part),适用于处理多部分表单提交的数据,特别是上传文件。

需要注意的是,当使用 @RequestPart 接收多部分表单数据时,MultipartFile 对象需要和 Content-Disposition 中的 name 属性值一致,用于匹配请求中的对应部分。

文章来源:https://blog.csdn.net/yhj198927/article/details/135750505
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。