1

DWR はプリミティブのリストを非常に簡単に処理します。DWR メソッド呼び出しによって返されたオブジェクトの配列が JSON オブジェクトを表しているかどうかを確認できませんでした。手がかりはありますか?それとも、オブジェクトの配列を表す JSON 文字列をブラウザーに返す必要がありますか?

4

1 に答える 1

6

この答えは少し遅れていますが、ここに行きます:)

朗報:DWRは、Java配列とコレクションも非常に簡単な方法で処理します。それらを返すだけで、クライアント側でJavaScript配列オブジェクトを取得できます。(配列またはコレクション内のプリミティブや文字列などの一般的なケースでは、つまり、コンテンツがよりエキゾチックなものである場合は、コンバーターを定義する必要があります。以下で詳しく説明します。)

これがDWRドキュメントからの引用です(私の強調):

デフォルトでは、以下のすべてが、それ以上の宣言なしに変換されます。

  • すべてのプリミティブ型、boolean、int、doubleなど。
  • これらのブール値、整数などのクラスベースのバージョン。
  • java.lang.String
  • java.util.Dateと3つのSQL派生物
  • 上記の配列
  • 上記のコレクション(リスト、セット、マップ、イテレータなど)
  • DOM、XOM、JDOM、DOM4JのDOMオブジェクト(ElementやDocumentなど)

したがって、これらのJSON文字列は絶対に必要ありません(ただし、より複雑なデータ構造には適したオプションかもしれません)。

DWRには多くの一般的な用途向けの「コンバーター」が付属しているため、多くの手作業を行わなくても、実際にはさらに多くの種類のオブジェクトを返すことができます。たとえば、カスタムの「Bean」スタイルのJavaオブジェクトをクライアント側のJSで機能させるには、 Beanコンバーターdwr.xmlを使用するだけです。

<convert converter="bean" match="com.company.YourBean" />

メソッドがそれらのBeanオブジェクトのリスト(または配列)を返す場合でも...

public static List<YourBean> getData(){ ... }

...上記の構成で十分です。これは非常に便利です。

于 2009-03-19T22:07:31.887 に答える