ラベル GWTモジュール の投稿を表示しています。 すべての投稿を表示
ラベル GWTモジュール の投稿を表示しています。 すべての投稿を表示

2011-07-22

GWTで初期パラメーターを受け取る

GWTというのは実体はJavaScriptであり、その実行プロセスは
コンテナとなるHTMLファイルの呼び出し→JavaScriptファイルのロード→表示
という手順を踏む。ここで、呼び出し時の初期パラメーターの設定はできないのだろうか?HTMLファイルを呼び出すわけだから、そんなことは無理なのでは?実際、 EntryPointクラスのonModuleLoadでも初期パラメータを受け取るような引数はないし、、、、と諦めていましたが、どうやら出来るようです。その方法は、
  • Locationクラス
を利用することで解決します。Locationクラスには、幾つかのメソッドが存在しており
  • リクエストパラメータ
  • ホスト名
などコンテナの呼び出し情報を入手することができます。これを利用することで例えば、
http://~.com/xxxx.html?id=3
という呼び出し方をした場合にonLoadModule()内で
String id = Location.getParameter("id");
といった記述によりidを取ってくることができます。

これができて嬉しいのは、モジュール間の連携が容易になるということ。GWTはシステムが複雑になると肥大してきますので、適度にモジュールを区別するのが望ましい。しかし、モジュールを別にするとデータの連携にひと工夫必要になりどうしたものか、、、と悩んでいたわけです。これからこの方法を重宝しそうです。

2011-06-27

EclipseでのGWTモジュールの追加

GWTの開発環境をEclipseに移行しているのだが、まだちょっと要領がわかってないのでメモ書き。。。
GWTのモジュールを追加する場合、ただ追加しただけでは、デバッグ時に実行されないという事象が発生。よく見てみると、
GWTで生成されるはずのjavaScriptのファウル群が追加したモジュールについて一切作られていない(warディレクトリ内で)
ということが判明。Netbeansでは、gwt.propertiesという設定ファイルでコンパイルの制御をしていたのだが、Eclipseでは良くわからない。。。で、試行錯誤してわかったのは、
正式なコンパイルを1度でもしておくということ。runでもDebugでもなく。
そうすることで複数のGWTモジュールに対してコンパイルがかけられ、warの対応するディレクトリにjsファイル等が配置されます。
以後、この状態で通常のrunやdebug等を実行すれば、変更点が反映されます。どうも挙動が怪しいですが、たぶんこれで大丈夫でしょう。