Java Spring绑定将请求参数放入对象
我有一个用于更新某些订单详细信息的端点。此端点接收带有更新的DTOJava Spring绑定将请求参数放入对象,java,spring,multipart,Java,Spring,Multipart,我有一个用于更新某些订单详细信息的端点。此端点接收带有更新的DTO @PutMapping public void updateOrder(OrderUpdateDTO updates) 问题是当我使用@PostMapping时,一切正常,我的请求成功绑定到一个对象。但是当我使用@PutMapping时,我所有的字段都是空的。当我查看请求对象本身时,它根本没有任何参数 可能的解决方案是使用@RequestBody标记方法参数,但问题是updates中的一个字段是一个文件,因此我将整个表单作为F
@PutMapping
public void updateOrder(OrderUpdateDTO updates)
问题是当我使用@PostMapping时,一切正常,我的请求成功绑定到一个对象。但是当我使用@PutMapping时,我所有的字段都是空的。当我查看请求对象本身时,它根本没有任何参数
可能的解决方案是使用@RequestBody标记方法参数,但问题是updates
中的一个字段是一个文件,因此我将整个表单作为FormData对象提交(我无法使用@RequestBody访问)
我在Spring文档中找不到任何关于POST自动将请求绑定到类而PUT不绑定请求的内容
所以我有两个问题:
您是否尝试从
RequestBody
中分离Multipartfile
并使用RequestParam
@PutMapping
public Foo updateOrder(
@RequestPart UpdateOrderDto updates,
@RequestPart MultipartFile file)
在上述情况下,您需要将两个字段放入表单中,
更新
和文件
谢谢您的回答。我刚试过。它不起作用。但即使是这样,这也不是我所需要的,因为UpdateOrderTo可能包含多个类似这样的文件(每个文件都包含一个文件列表),我不想将所有文件分离到单独的参数中,因为这些字段是更新的一部分,所以语义上是不正确的。请编辑您的帖子并添加您的帖子请求,好吗?我怀疑您如何在请求正文中包含多部分文件的POST请求。您正在使用哪个HTTP客户端发出请求?邮递员、curl还是直接从您的客户端应用程序?请提供如何发送请求的示例。我使用FormData与其他字段一起发送文件。