Maison  >  Article  >  Java  >  Comment transmettre plusieurs variables dans @RequestBody à l'aide d'Ajax et Spring MVC ?

Comment transmettre plusieurs variables dans @RequestBody à l'aide d'Ajax et Spring MVC ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-10 01:40:02220parcourir

How to Pass Multiple Variables in @RequestBody Using Ajax and Spring MVC?

Passer plusieurs variables dans @RequestBody à l'aide d'Ajax et Spring MVC

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 :

  • L'utilisation d'une carte simplifie l'accès aux valeurs individuelles mais nécessite une approche plus manuelle pour les extraire.
  • L'utilisation d'un ObjectNode offre plus de flexibilité mais peut nécessiter une manipulation supplémentaire pour accéder à des valeurs spécifiques ou parcourir l'arborescence JSON.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn