Heim > Java > javaLernprogramm > Wie serialisiert das Struts2 JSON-Plugin Datenstrukturen für AJAX-Aufrufe?

Wie serialisiert das Struts2 JSON-Plugin Datenstrukturen für AJAX-Aufrufe?

Patricia Arquette
Freigeben: 2024-12-10 10:21:16
Original
604 Leute haben es durchsucht

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

Struts2-JSON-Plugin: Seine Funktionen verstehen

Das Struts2-JSON-Plugin verfügt über eine einzigartige Funktionsweise. Es übernimmt die Serialisierung von Aktionen in JSON, jedoch nur für bestimmte Elemente:

  • Nicht-transiente Eigenschaften
  • Eigenschaften mit Gettern

Wenn Sie möchten Um nur bestimmte Objekte zu serialisieren, bietet das Plugin eine Lösung: das „root“-Attribut. Mit diesem Attribut können Sie das zu serialisierende Stammobjekt mithilfe eines OGNL-Ausdrucks angeben.

<result type="json">
    <param name="root">
        objectToBeSerialized
    </param>
</result>
Nach dem Login kopieren

Die Action-Klasse sollte Folgendes enthalten:

private CustomObject objectToBeSerialized;

public CustomObject getObjectToBeSerialized() {
    return this.objectToBeSerialized;
}
Nach dem Login kopieren

CustomObject kann verschiedene Datentypen darstellen. wie Primitive, Strings, Arrays usw.

Mit dieser Methode können Sie SUCCESS und ERROR wie übliche AJAX Struts2-Aktionen zurückgeben ohne Kompromisse bei den Rahmenkonventionen einzugehen. Darüber hinaus können Sie direkt über die Rückruffunktion des AJAX-jQuery-Aufrufs auf das serialisierte JSON-Objekt zugreifen.

Ansprechen Ihres Szenarios

Angenommen, Ihre Datenstruktur folgt dem Muster:

row1 [col1, col2], 
row2 [col1, col2], 
rowN [col1, col2]
Nach dem Login kopieren

Sie könnten Folgendes einsetzen Ansatz:

1. Erstellen Sie eine Liste benutzerdefinierter Objekte

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

    // Getters
}
Nach dem Login kopieren

2. Ändern Sie die Aktionsklasse

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
    }
} 
Nach dem Login kopieren

3. Passen Sie Struts.xml

<result type="json" >
    <param name="root">
        rows
    </param>
</result>
Nach dem Login kopieren

4 an. AJAX-Rückruffunktion

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });     
}
Nach dem Login kopieren

Mit diesem Ansatz können Sie Ihre gewünschte Datenstruktur serialisieren und sie innerhalb Ihrer AJAX-Rückruffunktion zugänglich machen.

Das obige ist der detaillierte Inhalt vonWie serialisiert das Struts2 JSON-Plugin Datenstrukturen für AJAX-Aufrufe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage