3

私のアプリケーションは、Grails ドメイン オブジェクトとコントローラーを含むサーバーに論理的に分割されています。クライアントには、すべての UI ページを構築する Ext GWT クラスがあります。

UI 要求の場合、たとえばドメイン オブジェクトのリストを JSON 構造として返すコントローラー メソッドへの AJAX 呼び出しを使用しています。

DRY の原則に従って、ドメイン データをサーバー上で JSON 文字列に「シリアル化」し、クライアント上でそれを別の構造に逆シリアル化することはしたくありません。すでに持っている Domain オブジェクトを利用したいと思います。 、これにより、新しいフィールドを追加、変更、または削除するときに複数の場所を変更する必要がなくなりました。

質問: それは良い方法ですか?

はいの場合、「クライアント側」の Ext GWT Java クラスで .groovy ドメイン オブジェクトを使用できるようにする最善の方法は何でしょうか?

「いいえ」の場合、なぜ悪いのか、代わりに何をアドバイスしますか?

4

2 に答える 2

1

良い方法はありません。GWT でシリアライズ可能な Java オブジェクトが必要です。私が見ることができる唯一の実際の解決策は、おそらくgrailsドメインオブジェクトの注釈を使用して、データ転送オブジェクトを自動生成する方法をプラグインを作成する(またはGWTプラグインに追加する)ことです。

gwt プラグインで RPCAsync インターフェイスを自動生成するために、同様の方法が使用されています。gwt プラグイン ディレクトリの GwtGrailsPlugin.groovy を参照してください。

それにフックして(またはそのファイルを直接変更するだけで、おそらく簡単に)、コードを挿入してデータ転送ファイルを生成できます。追加の利点は、個人データ (パスワードなど) が転送されないように、データ転送オブジェクトを粒状化できることです。

于 2008-10-29T09:52:34.450 に答える
0

または、jsonまたはxmlとしてデータをクライアント側に送信することもできます。サーバーサイド用のRESTAPIを作成できます。

于 2009-12-02T18:33:23.590 に答える