Heim >Java >javaLernprogramm >Wie kann ich die Serialisierung des Struts2-JSON-Plugins für bestimmte Objekte anpassen?

Wie kann ich die Serialisierung des Struts2-JSON-Plugins für bestimmte Objekte anpassen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-14 03:37:14222Durchsuche

How to Customize Struts2 JSON Plugin Serialization for Specific Objects?

Fehlerbehebung beim Struts2-JSON-Plugin

Funktionalität des Struts2-JSON-Plugins

Das Struts2-JSON-Plugin funktioniert durch Serialisierung der gesamten Aktion in JSON, mit Ausnahme vorübergehender Eigenschaften und dergleichen ohne Getter.

Serialisierung mit Root anpassen Objekt

Um nur ein bestimmtes Objekt zu serialisieren, können Sie das „root“-Attribut in struts.xml nutzen:

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

Lösung für einen bestimmten Fall

Gegebene Datenstruktur mit mehreren Zeilen, dargestellt als „[col1, col2]“, können Sie Folgendes erstellen:

  • Ein Wertobjekt: MyRow mit Felder col1 und col2
  • Eine Aktionsklasse mit einer Liste von MyRow namens „rows“
  • Aktualisieren Sie die Struts.xml, um den „Stamm“ auf „rows“ zu setzen

Beispielimplementierung

Wertobjekt (MyRow.java):

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

    // Getters and setters omitted for brevity
}

Aktionsklasse (PartAction.java):

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

    public List<MyRow> getRows() { return rows; }

    public String finder() {
        rows = new ArrayList<>();
        // Loop through search results and populate rows
        return Action.SUCCESS;
    }
}

Struts.xml:

<package name="default" namespace="/ajax" extends="json-default">
    <action name="finder" class="action.Part" method="finder">
        <result type="json">
            <param name="root">rows</param>
        </result>
    </action>
</package>

AJAX-Rückruf Funktion:

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

Das obige ist der detaillierte Inhalt vonWie kann ich die Serialisierung des Struts2-JSON-Plugins für bestimmte Objekte anpassen?. 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