我正在构建一个formData
const formulario = new FormData();
formulario.append('preco', this.formularioCasaVenda.get('preco').value);
formulario.append('foto_1', this.formularioCasaVenda.get('foto_1').value);
formulario.append('dormitorios', this.formularioCasaVenda.get('dormitorios').value);
我正在邮寄要求中发送它。
const httpOptions = {
headers: new HttpHeaders({'Content-Type': 'multipart/form-data'})
};
return this.http.post<Casa>("http://localhost:8080/api/casas-venda", formData1).pipe(
tap((product: Casa) => console.log(`added product w/ id=$`)),
catchError(this.handleError<Casa>('addProduct'))
);
如何从Spring引导控制器访问dormitorios,foto_1,preco,以便填充模型?
我的“绝望”豁免。
@CrossOrigin(origins = "http://localhost:4200")
@PostMapping("casas-venda")
public CasaVenda storeCasaVenda(@RequestParam("formulario") MultipartFile[] casaVenda){
CasaVenda casaVendaDB = new CasaVenda();
casaVendaDB.setDormitorios(1);
casaVendaDB.setPreco( Double.parseDouble(casaVenda[1].toString()));
casaVendaDB.setPreco(900.00);
return casaVendaDB;
// return this.casaVendaRepositorio.save(casaVenda);
}
答案 0 :(得分:1)
这是解决问题的一种方式:
@CrossOrigin(origins = "http://localhost:4200")
@PostMapping("/casas-venda")
public CasaVenda storeCasaVenda(@RequestParam("dormitorios") Integer dormitorios,
@RequestParam("preco") BigDecimal preco,
@RequestParam("foto_1") MultipartFile foto) {
CasaVenda casaVendaDB = new CasaVenda();
casaVendaDB.setDormitorios(dormitorios);
casaVendaDB.setPreco(preco.doubleValue());
// foto I am assuming is a file, so you receive it and you have to get the InputStream from it.
return casaVendaDB;
// return this.casaVendaRepositorio.save(casaVenda);
}
一个提示:
不要在端点@Entity类中返回,这不是一个好习惯,相反,您应该创建一个DTO(数据传输对象),并且仅将它们需要知道的内容返回给Frontend。
https://martinfowler.com/eaaCatalog/dataTransferObject.html
希望我能为您提供帮助。