Struts2 JSON プラグインは通常、アクション全体を JSON にシリアル化します。ただし、特定のオブジェクトのみをシリアル化する必要がある場合は、struts.xml 構成の「root」属性を使用してルート オブジェクトを指定できます。
この例では、JSON プラグインが次のとおりであるためにエラーが発生します。 SearchResult オブジェクトのリストを含む Part アクション全体をシリアル化しようとしています。ただし、jQuery 成功ハンドラーは、col1 やcol2 などの特定のキーを持つ JSON オブジェクトを想定しています。
この問題を解決するには、行リストをstruts.xml ファイル内のルート オブジェクト:
<result type="json"> <param name="root">rows</param> </result>
これは、行のみをシリアル化するようにプラグインに指示します。 list は、jQuery 成功ハンドラーでアクセスするオブジェクトです。
アクション クラスで、行リストのゲッター メソッドを作成できます。
public List<MyRow> getRows() { return this.rows; }
JSON オブジェクトの列を定義するには、col1 および Col1 のゲッターとセッターを備えた MyRow のような値オブジェクトを作成できます。列2のプロパティ。これにより、シリアル化形式をカスタマイズできます。
ルート オブジェクトを指定すると、$.each 関数を使用してデータにアクセスするように jQuery 成功ハンドラーを更新できます。
var handledata = function(data) { $.each(data, function(index) { alert(data[index].col1); alert(data[index].col2); }); }
ルート オブジェクトを使用すると、シリアル化プロセスを制御し、jQuery で必要なデータを確実に利用できるようになります。ハンドラー。
以上がStruts2 JSONプラグインを使用して特定のオブジェクトのみをシリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。