Heim  >  Artikel  >  Java  >  Können Sie mit Ajax mehrere Variablen in einem Anforderungstext an einen Spring MVC-Controller übergeben?

Können Sie mit Ajax mehrere Variablen in einem Anforderungstext an einen Spring MVC-Controller übergeben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-10 02:04:021041Durchsuche

Can You Pass Multiple Variables in a Request Body to a Spring MVC Controller Using Ajax?

Übergabe mehrerer Variablen in @RequestBody an einen Spring MVC-Controller mit Ajax

Beim Versuch, mehrere Variablen in einem Anforderungstext an einen Spring zu übergeben Wenn Sie einen MVC-Controller mit Ajax verwenden, stehen Sie möglicherweise vor der Frage, ob es notwendig ist, die Variablen in ein Hintergrundobjekt einzuschließen.

In der ursprünglichen Abfrage wurde der Wunsch geäußert, dies mithilfe des folgenden Ansatzes zu erreichen:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody String str1, @RequestBody String str2) {}

Mit JSON-Daten wie:

{
    "str1": "test one",
    "str2": "two test"
}

Der Autor sah sich jedoch mit der Notwendigkeit konfrontiert, stattdessen ein Halterobjekt zu verwenden:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody Holder holder) {}

Und zugehöriges JSON:

{
    "holder": {
        "str1": "test one",
        "str2": "two test"
    }
}

Das Dilemma liegt in der Tatsache, dass @RequestBody eine Zuordnung zu einem einzelnen Objekt erfordert, was die Verwendung mehrerer Parameter im Anforderungstext zu einer Herausforderung macht.

Während die oben genannte Problemumgehung mit einem Halterobjekt eine gültige Lösung ist, Ein alternativer Ansatz ist mit einem Map-Objekt verfügbar:

@RequestMapping(value = "/Test", method = RequestMethod.POST)
@ResponseBody
public boolean getTest(@RequestBody Map<String, String> json) {
   //json.get("str1") == "test one"
}

Diese Methode bietet eine flexible Möglichkeit, mehrere im Anforderungstext übergebene Variablen zu verarbeiten und ermöglicht den Zugriff auf sie über Map-Schlüssel.

Zusätzlich Wenn Sie sich lieber an Jacksons ObjectNode binden möchten, um mit einem vollständigen JSON-Baum zu arbeiten, können Sie Folgendes verwenden:

public boolean getTest(@RequestBody ObjectNode json) {
   //json.get("str1").asText() == "test one"
}

Diese Alternativen bieten Ihnen mehrere Optionen für die Verarbeitung mehrerer Variablen in einem Anforderungstext die Flexibilität, den Ansatz zu wählen, der Ihren spezifischen Anforderungen am besten entspricht.

Das obige ist der detaillierte Inhalt vonKönnen Sie mit Ajax mehrere Variablen in einem Anforderungstext an einen Spring MVC-Controller übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn