Heim >Java >javaLernprogramm >Wie serialisiert das Struts2 JSON-Plugin Datenstrukturen für AJAX-Aufrufe?
Das Struts2-JSON-Plugin verfügt über eine einzigartige Funktionsweise. Es übernimmt die Serialisierung von Aktionen in JSON, jedoch nur für bestimmte Elemente:
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.
Angenommen, Ihre Datenstruktur folgt dem Muster:
row1 [col1, col2], row2 [col1, col2], rowN [col1, col2]
Sie könnten Folgendes einsetzen Ansatz:
public class MyRow implements Serializable { private String col1; private String col2; // Getters }
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 } }
<result type="json" > <param name="root"> rows </param> </result>
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!