Maison > Java > javaDidacticiel > Comment le plugin JSON Struts2 sérialise-t-il les structures de données pour les appels AJAX ?

Comment le plugin JSON Struts2 sérialise-t-il les structures de données pour les appels AJAX ?

Patricia Arquette
Libérer: 2024-12-10 10:21:16
original
592 Les gens l'ont consulté

How Does the Struts2 JSON Plugin Serialize Data Structures for AJAX Calls?

Plugin Struts2-JSON : Comprendre ses fonctionnalités

Le plug-in Struts2 JSON a une façon unique de fonctionner. Il gère la sérialisation des actions en JSON, mais uniquement pour certains éléments :

  • Propriétés non transitoires
  • Propriétés avec getters

Si vous préférez sérialiser uniquement des objets spécifiques, le plugin apporte une solution : l'attribut "root". Cet attribut vous permet de spécifier l'objet racine à sérialiser à l'aide d'une expression OGNL.

<result type="json">
    <param name="root">
        objectToBeSerialized
    </param>
</result>
Copier après la connexion

La classe Action doit contenir les éléments suivants :

private CustomObject objectToBeSerialized;

public CustomObject getObjectToBeSerialized() {
    return this.objectToBeSerialized;
}
Copier après la connexion

CustomObject peut représenter différents types de données, tels que des primitives, des chaînes, des tableaux, etc.

En utilisant cette méthode, vous pouvez renvoyer SUCCÈS et ERREUR comme l'AJAX habituel Actions Struts2 sans compromettre les conventions-cadres. De plus, vous pouvez accéder à l'objet JSON sérialisé directement à partir de la fonction de rappel de l'appel AJAX jQuery.

Adressage de votre scénario

En supposant que votre structure de données suit le modèle :

row1 [col1, col2], 
row2 [col1, col2], 
rowN [col1, col2]
Copier après la connexion

Vous pouvez employer les personnes suivantes approche :

1. Créez une liste d'objets personnalisés

public class MyRow implements Serializable {
    private String col1; 
    private String col2;

    // Getters
}
Copier après la connexion

2. Modifiez la classe d'action

public class PartAction implements Serializable {
    private List<MyRow> rows; 

    // Getter
    public  List<MyRow> getRows() { 
        return this.rows; 
    } 

    public String finder() {
        rows = new ArrayList<MyRow>();

        // Populate the list with data
    }
} 
Copier après la connexion

3. Ajustez Struts.xml

<result type="json" >
    <param name="root">
        rows
    </param>
</result>
Copier après la connexion

4. Fonction de rappel AJAX

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });     
}
Copier après la connexion

Cette approche vous permet de sérialiser la structure de données souhaitée, la rendant accessible dans votre fonction de rappel AJAX.

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!

source:php.cn
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