< /p>
Oder, wenn Sie ein JS -Beispiel benötigen: < /p>
Code: Select all
function createFormData() {
const formDate = new FormData()
formDate.append('name', 'test')
formDate.append('logo', new File([''], 'test.png'))
formDate.append('link', 'test')
formDate.append('contacts[0][name]', 'test')
formDate.append('contacts[0][email]', 'test')
formDate.append('contacts[0][icon]', new File([''], 'test.png'))
formDate.append('contacts[1][name]', 'test')
formDate.append('contacts[1][email]', 'test')
formDate.append('contacts[1][icon]', new File([''], 'test.png'))
return formDate
}
< /code>
Wenn eine solche Anforderung empfangen wird, gibt Spring zurück:
Invalid property 'contacts[0][email]' of bean class [com.example.trilha.dto.PartnerRequest]: Illegal attempt to get property 'contacts' threw exception
Wie kann ich dies implementieren?
Code: Select all
@PostMapping(value = "createPartner", consumes = "multipart/form-data")
public ResponseEntity createPartner(
@ModelAttribute PartnerRequest partnerRequest
)
< /code>
Die DTOs für die Anforderung sind Folgendes: < /p>
record Contacts(
String name,
String email,
MultipartFile icon
) {}
public record PartnerRequest(
String name,
MultipartFile logo,
String link,
List contacts
){}
< /code>
Bearbeiten:
Ich habe momentan kein Front-End, ich erstelle die API zuerst, bevor ich die Schnittstelle erstelle < /p>
ModelAttribute ändern