Empfangen einer Liste von Objekten mit Dateien auf Spring StartJava

Java-Forum
Anonymous
 Empfangen einer Liste von Objekten mit Dateien auf Spring Start

Post by Anonymous »

Ich habe zuvor eine Frage gestellt, um eine Liste benutzerdefinierter Objekte auf Spring-Start auf Multipart/Form-Data-Anfragen zu erhalten. Jetzt muss ich einige Anpassungen vornehmen, um Dateien auch zu senden. Aber es funktioniert nicht für Dateien. Daher fand ich diese Antwort, wie ich mit dem Beitrag von Arrays/Listen von Objekten umgehen kann (sie verwendeten NextJs als Backend), und ich möchte für den Frühling etwas Ähnliches tun und auch keine Antworten finden. Hier ist ein Exemple, wie die Anforderung aussehen sollte:
< /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 
zu RequestParam löst das Problem nicht Beschreibung hier " src = "https://i.static.net/lqqffmdr.png"/>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post