Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring绑定将请求参数放入对象_Java_Spring_Multipart - Fatal编程技术网

Java Spring绑定将请求参数放入对象

Java Spring绑定将请求参数放入对象,java,spring,multipart,Java,Spring,Multipart,我有一个用于更新某些订单详细信息的端点。此端点接收带有更新的DTO @PutMapping public void updateOrder(OrderUpdateDTO updates) 问题是当我使用@PostMapping时,一切正常,我的请求成功绑定到一个对象。但是当我使用@PutMapping时,我所有的字段都是空的。当我查看请求对象本身时,它根本没有任何参数 可能的解决方案是使用@RequestBody标记方法参数,但问题是updates中的一个字段是一个文件,因此我将整个表单作为F

我有一个用于更新某些订单详细信息的端点。此端点接收带有更新的DTO

@PutMapping
public void updateOrder(OrderUpdateDTO updates)
问题是当我使用@PostMapping时,一切正常,我的请求成功绑定到一个对象。但是当我使用@PutMapping时,我所有的字段都是空的。当我查看请求对象本身时,它根本没有任何参数

可能的解决方案是使用@RequestBody标记方法参数,但问题是
updates
中的一个字段是一个文件,因此我将整个表单作为FormData对象提交(我无法使用@RequestBody访问)

我在Spring文档中找不到任何关于POST自动将请求绑定到类而PUT不绑定请求的内容

所以我有两个问题:

  • 这个春天的魔法是如何工作的(为什么它对POST和PUT的工作方式不同)?(或与任何来源的某些链接)
  • 如何将Spring@PutMapping与多部分请求结合起来上传文件

  • 您是否尝试从
    RequestBody
    中分离
    Multipartfile
    并使用
    RequestParam

    @PutMapping
    public Foo updateOrder(
        @RequestPart UpdateOrderDto updates,
        @RequestPart MultipartFile file)
    

    在上述情况下,您需要将两个字段放入表单中,
    更新
    文件

    谢谢您的回答。我刚试过。它不起作用。但即使是这样,这也不是我所需要的,因为UpdateOrderTo可能包含多个类似这样的文件(每个文件都包含一个文件列表),我不想将所有文件分离到单独的参数中,因为这些字段是更新的一部分,所以语义上是不正确的。请编辑您的帖子并添加您的帖子请求,好吗?我怀疑您如何在请求正文中包含多部分文件的POST请求。您正在使用哪个HTTP客户端发出请求?邮递员、curl还是直接从您的客户端应用程序?请提供如何发送请求的示例。我使用FormData与其他字段一起发送文件。