ホームページ >Java >&#&チュートリアル >特定のオブジェクトの Struts2 JSON プラグインのシリアル化をカスタマイズするにはどうすればよいですか?

特定のオブジェクトの Struts2 JSON プラグインのシリアル化をカスタマイズするにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-14 03:37:14224ブラウズ

How to Customize Struts2 JSON Plugin Serialization for Specific Objects?

Struts2 JSON プラグインのトラブルシューティング

Struts2 JSON プラグインの機能

Struts2 JSON プラグインは、一時的なプロパティなどを除き、アクション全体を JSON にシリアル化することで動作します。それなしgetters.

ルート オブジェクトによるシリアル化のカスタマイズ

特定のオブジェクトのみをシリアル化するには、struts.xml の「root」属性を利用できます。

<result type="json">
    <param name="root">
        objectToBeSerialized
    </param>
</result>

ソリューション特定のケース

「[col1, Col2]" を使用して、以下を作成できます。

  • 値オブジェクト: Col1 および Col2 フィールドを持つ MyRow
  • 「rows」と呼ばれる MyRow のリストを持つ Action クラス
  • Struts.xml を更新して「ルート」を次のように設定します。 "rows"

実装例

値オブジェクト (MyRow.java):

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

    // Getters and setters omitted for brevity
}

アクション クラス(PartAction.java):

public class PartAction implements Serializable {
    private List<MyRow> rows;

    public List<MyRow> getRows() { return rows; }

    public String finder() {
        rows = new ArrayList<>();
        // Loop through search results and populate rows
        return Action.SUCCESS;
    }
}

Struts.xml:

<package name="default" namespace="/ajax" extends="json-default">
    <action name="finder" class="action.Part" method="finder">
        <result type="json">
            <param name="root">rows</param>
        </result>
    </action>
</package>

AJAX コールバック関数:

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });
}

以上が特定のオブジェクトの Struts2 JSON プラグインのシリアル化をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。