Maison  >  Article  >  Java  >  Comment transférer des données JSON de manière bidirectionnelle avec Spring MVC et jQuery ?

Comment transférer des données JSON de manière bidirectionnelle avec Spring MVC et jQuery ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-21 00:44:18936parcourir

How to Bidirectionally Transfer JSON Data with Spring MVC and jQuery?

S'attaquer au transfert de données bidirectionnel avec JQuery, Spring MVC et JSON

Malgré le succès du transfert de données Java vers JSON à l'aide de @ResponseBody, la mise en œuvre de son chemin inverse a été insaisissable. Cet article examine la solution permettant de sérialiser à nouveau JSON dans un objet Java à l'aide de @RequestBody.

Conditions préalables au succès

Pour garantir une expérience transparente, assurez-vous de ce qui suit :

  • Configuration appropriée de Jackson : Vérifiez que MappingJacksonHttpMessageConverter est enregistré, généralement obtenu via en XML ou @EnableWebMvc en Java.

Un exemple complet

Pour illustrer la solution, considérons l'exemple ci-dessous :

web.xml :

<servlet>
  <servlet-name>json</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>json</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>

json-servlet.xml :

<beans>
  <import resource="classpath:mvc-context.xml" />
</beans>

mvc-context.xml :

<beans>
  <mvc:annotation-driven />
  <context:component-scan base-package="test.json" />
</beans>

TestController (classe de contrôleur) :

@Controller
@RequestMapping("/test")
public class TestController {

  @RequestMapping(method = RequestMethod.POST, value = "math")
  @ResponseBody
  public Result math(@RequestBody final Request request) {
    ...
  }

}

Requête (POJO pour les requêtes POST) :

public class Request {
  private int left;
  private int right;
  ...
}

Résultat (POJO pour les réponses sérialisées) :

public class Result {
  private int addition;
  private int subtraction;
  private int multiplication;
  ...
}

Test de la solution

Exécutez la commande mvn jetty:run et envoyez la requête POST suivante :

  • URL : http://localhost:8080/test/math
  • Type MIME : application/json
  • Corps du message : { "gauche": 13, "droite" : 7 }

La réponse que vous devriez recevoir :

{"addition":20,"subtraction":6,"multiplication":91}

Ceci démontre le transfert de données bidirectionnel entre JSON et Java à l'aide de @RequestBody.

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