Le message d'erreur "Aucun résultat défini pour l'action. La pièce et le résultat {"col1": "col1", "col2": "col2">" indiquent que Struts2 ne parvient pas à localiser l'action ou le résultat spécifié dans la configuration de votre application.
Le plugin Struts2-JSON sérialise l'intégralité de l'action en JSON en par défaut, à l'exclusion des propriétés transitoires ou de celles sans getters. Cependant, vous pouvez personnaliser ce comportement en spécifiant un objet racine qui définit quelle partie de l'action doit être sérialisée.
Voici un exemple de ce à quoi pourrait ressembler votre code :< /p>
Valeur Objet :
classe publique MyRow implémente Serialisable {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">private static final long serialVersionUID = 1L; private String col1; private String col2; // Getters public String getCol1(){ return this.col1; } public String getCol2(){ return this.col2; }
}
Actions Classe :
classe publique PartAction implémente Serialisable {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">private static final long serialVersionUID = 1L; private List<MyRow> rows; // Getter public List<MyRow> getRows() { return this.rows; } public String finder() { String result = Action.SUCCESS; rows = new ArrayList<MyRow>(); try { Iterator it = findList.iterator(); while(it.hasNext()) { SearchResult part = (SearchResult) it.next(); MyRow row = new MyRow(); row.setCol1(part.getcol1()); row.setCol2(part.getcol2()); rows.add(row); } } catch (Exception e) { result = Action.ERROR; log.error(e); } return result; }
}
Struts.xml Configuration :
<package name="default" namespace="/ajax" extends="json-default"></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><action name="finder">
jQuery Succès Rappel :
var handledata = function(data) {<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$.each(data, function(index) { alert(data[index].col1); alert(data[index].col2); });
}
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!