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 :
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>
La classe Action doit contenir les éléments suivants :
private CustomObject objectToBeSerialized; public CustomObject getObjectToBeSerialized() { return this.objectToBeSerialized; }
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.
En supposant que votre structure de données suit le modèle :
row1 [col1, col2], row2 [col1, col2], rowN [col1, col2]
Vous pouvez employer les personnes suivantes approche :
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); }); }
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!