Question :
Comment pouvez-vous transmettre plusieurs variables dans le corps de la requête HTTP à un contrôleur Spring MVC utilisant Ajax ? Plus précisément, pouvez-vous utiliser @RequestBody avec des paramètres individuels, ou nécessite-t-il un objet d'habillage ?
Réponse :
Alors que @RequestBody correspond généralement à un seul objet, vous pouvez atteindre votre objectif en utilisant l'une des méthodes suivantes :
Option 1 : Utiliser une carte
Pour éviter de créer un objet de support personnalisé, vous pouvez mapper @RequestBody à un Map
@RequestMapping(value = "/Test", method = RequestMethod.POST) @ResponseBody public boolean getTest(@RequestBody Map<String, String> json) { //json.get("str1") == "test one" }
Cela vous permet d'accéder aux variables individuelles du JSON en tant que propriétés de la carte.
Option 2 : Utiliser un ObjectNode
Si vous préférez travailler avec l'arborescence JSON complète, vous pouvez lier @RequestBody à l'ObjectNode de Jackson :
public boolean getTest(@RequestBody ObjectNode json) { //json.get("str1").asText() == "test one" }
Cela vous donne un accès direct à la structure JSON et à ses différents nœuds.
Comparaison :
Les deux options offrent différentes approches pour gérer plusieurs variables dans @RequestBody :
En fin de compte, le meilleur le choix dépend des besoins spécifiques de votre application et du niveau de flexibilité requis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!