Frage:
Wie können Sie mehrere Variablen übergeben? den HTTP-Anfragetext an einen Spring MVC-Controller mit Ajax? Konkret: Können Sie @RequestBody mit einzelnen Parametern verwenden oder ist dafür ein Wrapping-Objekt erforderlich?
Antwort:
Während @RequestBody normalerweise einem einzelnen Objekt zugeordnet ist, können Sie Sie können Ihr Ziel mit einer der folgenden Methoden erreichen:
Option 1: Verwenden von a Map
Um die Erstellung eines benutzerdefinierten Hintergrundobjekts zu vermeiden, können Sie @RequestBody einer Map
@RequestMapping(value = "/Test", method = RequestMethod.POST) @ResponseBody public boolean getTest(@RequestBody Map<String, String> json) { //json.get("str1") == "test one" }
Dadurch können Sie auf die einzelnen Variablen zugreifen das JSON als Eigenschaften der Karte.
Option 2: Verwenden eines ObjectNode
Wenn Sie lieber mit dem vollständigen JSON-Baum arbeiten möchten, können Sie @RequestBody an Jacksons ObjectNode binden:
public boolean getTest(@RequestBody ObjectNode json) { //json.get("str1").asText() == "test one" }
Dadurch erhalten Sie direkten Zugriff auf die JSON-Struktur und ihre verschiedenen Knoten.
Vergleich:
Beide Optionen bieten Verschiedene Ansätze zum Umgang mit mehreren Variablen in @RequestBody:
Letztendlich hängt die beste Wahl davon ab die spezifischen Anforderungen Ihrer Anwendung und das erforderliche Maß an Flexibilität.
Das obige ist der detaillierte Inhalt vonWie übergebe ich mehrere Variablen in @RequestBody mit Ajax und Spring MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!