2012-01-13 5 views
14

GWTクライアントコードとサーバーコードの間でJavaクラスを「共有」することはできますか?GWTクライアントコードとサーバーコードの間でクラスをどのように共有できますか?

私は単純なクラスをいくつか持っています。StringsといくつかはList<String>です。私はいくつかの一貫性のためだけにクライアント側のコードとサーバー側のコードの両方でこのクラスを使用できるようにしたいと思います。

私が共有しようとしているクラスは、いくつかの追加情報を含むエラーメッセージのコンテナです。私のアプリケーションでは、保存を妨げるいくつかのエラーがありますので、保存する前にクライアント側でチェックします。その後、保存した後、サーバー側で保存されたオブジェクトの検証をさらに行います。

GWTコンパイルでは1回、通常のjavacコンパイルでは2回 "コンパイル"する必要があると私は理解していますが、可能であるようです。

これを行うために私のGWTプロジェクトを設定する方法はありますか?

答えて

18

GWTを使用する理由の1つは、クライアントとサーバーの単一ドメインモデルを持つことです。

サーバーコードとクライアント側の間で共有クラスを使用するのが一般的です。

通常GWTクライアントのソースコードとプロジェクトがsharedパッケージは、JavaバイトコードとJavaScriptの両方をコンパイルJavaScriptにclient、およびサーバサイドのロジックがserverパッケージ内に配置された3つのパッケージ

com.yourpackage 
       -shared 
       -client 
       -server 

まで分割します。

クライアントのコンパイルパスは、*.gwt.xmlファイルで設定できます。

+3

GWTの標準は 'shared'という名前を使用することです。それはいい答えです。 +1 –

+0

クリス、同意します、ありがとうございます。 –

+4

Mairbekありがとう、これは私のために働いた。もう少し具体的にするために、私たちは "共有"パッケージを持っていなかったので、新しいパッケージを作る必要がありました。 私の* .gwt.xmlファイルに行を追加しなければなりません: '' – cshanes

関連する問題