Maison > Java > javaDidacticiel > Comment intégrer JQuery, @RequestBody de Spring MVC et JSON pour la sérialisation bidirectionnelle ?

Comment intégrer JQuery, @RequestBody de Spring MVC et JSON pour la sérialisation bidirectionnelle ?

Barbara Streisand
Libérer: 2024-12-05 20:32:10
original
670 Les gens l'ont consulté

How to Integrate JQuery, Spring MVC's @RequestBody, and JSON for Bidirectional Serialization?

JQuery, Spring MVC @RequestBody et JSON – Les faire fonctionner ensemble

Bien que la sérialisation des objets Java en JSON pour la consommation JQuery puisse être simple, le chemin inverse : l'analyse JSON et sa conversion en objets Java peuvent poser des problèmes. Cet article vous guidera à travers les étapes nécessaires pour faire de cette sérialisation bidirectionnelle une réalité.

Le problème : JSON vers Java en utilisant @RequestBody

Pour désérialiser JSON en un objet Java à l'aide de Spring MVC @RequestBody , il est indispensable d'enregistrer le MappingJacksonHttpMessageConverter. Bien que cela puisse être fait manuellement, la méthode la plus simple consiste à utiliser en XML ou @EnableWebMvc en Java.

Un exemple fonctionnel

Considérez l'exemple suivant, qui présente une solution complète pour la sérialisation JSON bidirectionnelle :

Maven POM

<!-- Spring MVC -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>
<!-- Jackson -->
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-asl</artifactId>
    <version>1.4.2</version>
</dependency>
Copier après la connexion

Mappage des servlets

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

#### Spring Bean Configuration
Copier après la connexion

<import resource="classpath:mvc-context.xml" />
Copier après la connexion

#### `mvc-context.xml`
Copier après la connexion

<mvc:annotation-driven />
<context:component-scan base-package="test.json" />
Copier après la connexion

#### Controller
Copier après la connexion

@Controller
@RequestMapping("/test")
classe publique TestController {

@RequestMapping(method = RequestMethod.POST, value = "math")
@ResponseBody
public Result math(@RequestBody final Request request) {...}
Copier après la connexion

}

#### Domain Objects
Copier après la connexion

Demande de cours public {

// ... fields and getters/setters ...
Copier après la connexion
Copier après la connexion

}

Résultat du cours public {

// ... fields and getters/setters ...
Copier après la connexion
Copier après la connexion

}

#### Testing the Setup

Using the Poster Firefox plugin, send a POST request to the following URL:
Copier après la connexion

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

#### Expected Response
Copier après la connexion

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

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal