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
Patricia ArquetteOriginal
2024-12-10 10:21:16595Durchsuche

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>

Die Action-Klasse sollte Folgendes enthalten:

private CustomObject objectToBeSerialized;

public CustomObject getObjectToBeSerialized() {
    return this.objectToBeSerialized;
}

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]

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
}

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
    }
} 

3. Passen Sie Struts.xml

<result type="json" >
    <param name="root">
        rows
    </param>
</result>

4 an. AJAX-Rückruffunktion

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

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!

Stellungnahme:
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