Le plugin JSON Struts2 sérialise généralement une action entière en JSON. Cependant, si vous avez uniquement besoin de sérialiser un objet spécifique, vous pouvez spécifier un objet racine à l'aide de l'attribut "root" dans votre configuration struts.xml.
Dans l'exemple fourni, l'erreur se produit car le plugin JSON est tenter de sérialiser l'intégralité de l'action Part, qui inclut une liste d'objets SearchResult. Cependant, le gestionnaire de réussite jQuery attend un objet JSON avec des clés spécifiques, telles que col1 et col2.
Pour résoudre ce problème, vous pouvez spécifier la liste des lignes comme objet racine dans votre fichier struts.xml :
<result type="json"> <param name="root">rows</param> </result>
Cela demandera au plugin de sérialiser uniquement la liste des lignes, qui est l'objet que vous souhaitez accès dans votre gestionnaire de réussite jQuery.
Dans votre classe d'action, vous pouvez créer une méthode getter pour la liste de lignes :
public List<MyRow> getRows() { return this.rows; }
Pour définissez les colonnes dans votre objet JSON, vous pouvez créer un objet de valeur comme MyRow avec des getters et des setters pour les propriétés col1 et col2. Cela vous permet de personnaliser le format de sérialisation.
Avec l'objet racine spécifié, votre gestionnaire de réussite jQuery peut être mis à jour pour accéder aux données à l'aide de la fonction $.each :
var handledata = function(data) { $.each(data, function(index) { alert(data[index].col1); alert(data[index].col2); }); }
En utilisant un objet racine, vous pouvez contrôler le processus de sérialisation et vous assurer que les données dont vous avez besoin sont disponibles dans votre succès jQuery gestionnaire.
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!