我想知道一个使用Spring在单个帖子中接收图像和简单数据的简单解决方案。我是Java的初学者,所以我想知道简单的方法。我使用了多个后端框架,并且在所有这些框架中都遇到了此问题。

我有以下问题:

我正在收到这样的多部分/表单数据

   public CasaVenda storeCasaVendaOld(@RequestParam("dormitorios")  Integer dormitorios, @RequestParam("preco")  Double preco, @RequestParam("foto_1")   MultipartFile foto_1){


我收到一些数字以及图片。这是初学者实现的典型的首次尝试。Validate将需要在控制器中编写代码,而且我必须接收比这里描述的更多的参数,因此这是一个不好的实现。

我考虑过要接受模特儿

public CasaVenda storeCasaVenda(@Valid @RequestBody CasaVenda casa)


现在,我可以使用注释等进行验证。问题出在文件上。是否有一种简单的解决方案可以在一个后期请求中接收文件,还是应该分割整个数据的存储过程和备用的文件?我的意思是我可以将资源创建过程分为两个步骤,首先输入整个数据,然后包括照片。

最佳答案

定义对象非常容易:

public class MyObject {
   private Integer dormitorios;
   private Double preco;
   ...
   getters/setters/constructors/etc.
   ...
  // I'm not sure whether you can place a MultipartFile here as well to process image,
  // however it doesn't make sense to validate it anyway
}



然后,您可以在控制器中使用该对象,它将通过spring自动将所有查询参数映射到该对象的字段:


public CasaVenda storeCasaVendaOld(MyObject myObject) {
}



现在,您可以在MyObject内放置Validation注释,它将被验证,只是不要在对象之前使用@RequestParam注释...

10-02 21:33