1

GWTにPOJOよりも複雑なクラス実装があるが、そのメソッドはまだ比較的単純であるとしましょう。つまり、クライアントとセッターの両方で新しいFoo()を正常に呼び出すことができるように、ゲッターとセッターに加えていくつかのユーティリティメソッドがあります。サーバーコード。

私の質問はこれです:私がそのようなオブジェクトのインスタンスを持っている場合、GWTサーバーとクライアントの間でそれをどのように通信しますか?つまり、オブジェクトが逆シリアル化されたときに他のメソッドを呼び出す機能を保持しながら、両方のフィールドを送信するにはどうすればよいですか?

現在、サーバー側でJacksonを使用し、クライアント側でAutoBeansを使用していますが、AutoBeansはゲッターとセッターのみを含むインターフェイスから取得され、そのデータをより便利なものに(自動的に)プルする方法がないため、POJOクラスに厳密に制限されています。物体。

完全を期すために、ここに問題のオブジェクトがありますhttp://pastebin.com/H2ea0W6A

4

1 に答える 1

2

次を使用して、AutoBeans 内に実際にロジック@Categoryを配置できます:
https://code.google.com/p/google-web-toolkit/wiki/AutoBean#Categories

ただし、setKWHRandでは機能しgetKWHRません (少なくとも、プロパティ アクセサーのように名前が付けられている場合はそうではありません)。

これらのメソッドをEnergyクラスから移動して、DTO のみとして残す方がおそらく簡単でしょう。
あるいは、そのような DTO (少なくともクライアントでは、DTO は AutoBean です) を別のオブジェクトにラップして、ロジックを提供できるようにします (そして、ラップされた DTO に委任するだけですgetMMBTU) getDisplayUnit

それか、Piritiのようなものを使用して、AutoBeans の代わりにクライアント側で逆シリアル化を行います。または、AutoBean データをEnergyインスタンスにコピーします。

于 2012-11-13T17:25:16.767 に答える