Struts2のJSPからGWTの呼び出し

GWTのRPCのサービス実装側で簡単にStruts2のActionが使えるようになった、次はStruts2の画面のJSPからGWTを起動(画面中のあるエリアがGWT支配下にあるイメージ)してみる。

Struts2JSPGWTのRootPanelで指定しているIDのタグを作成し、次のJavaScriptを呼び出すようにする。

<script language='javascript' src='tutorial.gwt.MyGWT.nocache.js'></script>

Tilesレイアウトのhead要素をオーバーライドしてhead部分に記述する

<tiles:putAttribute name="head">
  <script language='javascript' src='tutorial.gwt.MyGWT.nocache.js'></script>
</tiles:putAttribute>

あとは bodyのどこかにIDが "slot1"(RootPanelでgetしているid)の要素を作ればそこがGWT支配下になる。
Backボタンのサポートをする場合は

<iframe src="javascript:''" id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>

もbodyに入れるといいらしい。

tutorial.gwt.MyGWT.nocache.js

は 通常その他のファイルとともにプロジェクトのデフォルト設定によりアプリケーション直下にコピーされる。

この割り切ったGWTの使い方によるStruts2のタグや既存フォーム要素との"しがらみ"の無さはメリットだと思う。