ホームページ > Java > &#&チュートリアル > Struts2 JSON プラグインは、AJAX 呼び出しのデータ構造をどのようにシリアル化しますか?

Struts2 JSON プラグインは、AJAX 呼び出しのデータ構造をどのようにシリアル化しますか?

Patricia Arquette
リリース: 2024-12-10 10:21:16
オリジナル
629 人が閲覧しました

How Does the Struts2 JSON Plugin Serialize Data Structures for AJAX Calls?

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

Struts2 JSON プラグインの操作方法は独特です。アクションの JSON へのシリアル化を処理しますが、特定の要素のみが対象です:

  • 非一時プロパティ
  • ゲッターを含むプロパティ

特定のオブジェクトのみをシリアル化する場合、プラグインは「root」属性という解決策を提供します。この属性を使用すると、OGNL 式を使用してシリアル化されるルート オブジェクトを指定できます。

<result type="json">
    <param name="root">
        objectToBeSerialized
    </param>
</result>
ログイン後にコピー

Action クラスには次のものが含まれている必要があります。

private CustomObject objectToBeSerialized;

public CustomObject getObjectToBeSerialized() {
    return this.objectToBeSerialized;
}
ログイン後にコピー

CustomObject はさまざまなデータ型を表すことができます。プリミティブ、文字列、配列など。

このメソッドを利用すると、通常と同じようにSUCCESSとERRORを返すことができますフレームワークの規約を損なうことなく、AJAX Struts2 アクションを実行します。さらに、AJAX jQuery 呼び出しのコールバック関数からシリアル化された JSON オブジェクトに直接アクセスできます。

シナリオの対処

データ構造が次のパターンに従っていることを前提とします。

row1 [col1, col2], 
row2 [col1, col2], 
rowN [col1, col2]
ログイン後にコピー

次のようにすることができますアプローチ:

1.カスタム オブジェクトのリストを作成します

public class MyRow implements Serializable {
    private String col1; 
    private String col2;

    // Getters
}
ログイン後にコピー

2.アクション クラス

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
    }
} 
ログイン後にコピー

3を変更します。 Struts.xml

<result type="json" >
    <param name="root">
        rows
    </param>
</result>
ログイン後にコピー

4を調整します。 AJAX コールバック関数

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });     
}
ログイン後にコピー

このアプローチにより、必要なデータ構造をシリアル化し、AJAX コールバック関数内でアクセスできるようになります。

以上がStruts2 JSON プラグインは、AJAX 呼び出しのデータ構造をどのようにシリアル化しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート