ホームページ > Java > &#&チュートリアル > JSON プラグインを使用した Struts2 の「アクション action.Part および result に結果が定義されていません」エラーを解決する方法

JSON プラグインを使用した Struts2 の「アクション action.Part および result に結果が定義されていません」エラーを解決する方法

Barbara Streisand
リリース: 2024-12-09 01:28:10
オリジナル
546 人が閲覧しました

How to Resolve

存在しないアクションまたは結果への不正アクセス


エラー メッセージ「アクション action に対して結果が定義されていません。パートと結果{"col1":"col1","col2":"col2"}" は、Struts2 がアプリケーション構成内で指定されたアクションまたは結果を見つけることができないことを示します。


Struts2-JSON プラグインを理解する


Struts2-JSONプラグインは、一時的なプロパティやゲッターのないプロパティを除き、デフォルトでアクション全体を JSON にシリアル化します。ただし、アクションのどの部分をシリアル化するかを定義するルート オブジェクトを指定することで、この動作をカスタマイズできます。


ルート オブジェクトを使用した問題の解決


< p>あなたの場合、MyRow のようなカスタム ルート オブジェクトを定義して、行のデータ構造を表すことができます。その後、Struts2 構成でこのルート オブジェクトを使用して、JSON シリアル化でアクション全体の代わりにそのルート オブジェクトを使用するように指定できます。


コードがどのように見えるかの例を次に示します。 /p>
値オブジェクト:

public class MyRow は Serializable {<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; 
}
ログイン後にコピー


}

アクションクラス:


public class PartAction は Serializable {</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構成:

<package name="default" namespace="/ajax" extends="json-default"><br></p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><action name=&quot;finder&quot;>
ログイン後にコピー




jQuery成功コールバック:

var handledata = function(data) {<br></p><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);
});     
ログイン後にコピー
}


以上がJSON プラグインを使用した Struts2 の「アクション action.Part および result に結果が定義されていません」エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
前の記事:Java 文字列が整数を表しているかどうかを効果的に判断するにはどうすればよいですか? 次の記事:IntelliJ IDEA で JUnit テストが「javac: ソース リリース 1.7 にはターゲット リリース 1.7 が必要です」というメッセージが表示されて失敗するのはなぜですか?
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
関連トピック
詳細>
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート