Maison >Java >javaDidacticiel >Comment résoudre les erreurs « Aucun résultat défini pour l'action action.Part et résultat » dans Struts2 avec le plugin JSON ?

Comment résoudre les erreurs « Aucun résultat défini pour l'action action.Part et résultat » dans Struts2 avec le plugin JSON ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 01:28:10546parcourir

How to Resolve

Accès non autorisé à une action ou un résultat inexistant


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.


Comprendre le plugin Struts2-JSON


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.


Résoudre le problème à l'aide de l'objet racine


< p>Dans votre cas, vous pouvez définir un objet racine personnalisé, comme MyRow, pour représenter la structure de données de vos lignes. Vous pouvez ensuite utiliser cet objet racine dans votre configuration Struts2 pour spécifier que la sérialisation JSON doit l'utiliser à la place de l'action entière.


Voici un exemple de ce à quoi pourrait ressembler votre code :< /p>

Valeur Objet :


classe publique MyRow implémente Serialisable {</p>
<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>
<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>
<pre class="brush:php;toolbar:false"><action name=&quot;finder&quot;>




jQuery Succès Rappel :


var handledata = function(data) {<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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn