S2Tapestryを使うと、S2とTapestryが簡単に連動するようになります。
ページクラスにサービスコンポーネントが自動的に設定されるので、
ページクラスの役割は適切なサービスコンポーネントを呼び出すだけになり、
プレゼンテーション層とサービス層の役割分担も明確になります。
・.pageファイル内でglobalオブジェクト経由でcontainerの中身を呼べます。
・Pageオブジェクト(だいたいはBasePageを継承したクラス)のトップレベルのクラスに対して、オートインジェクションを行います。
・Tapestryのサービス(拡張子applicationファイルのserviceノードで指定)に対してオートインジェクションを行います。
・ページ遷移時にページのBeanデータをコピーします。
・リスナーメソッドを、IPage実装オブジェクトからS2コンテナ上のオブジェクトに委譲する
・IPage実装クラスにAOPを適用する
使用するサーブレットをorg.seasar.tapestry.S2TapestryServletに変更します。
■.pageファイル内global経由のcontainerの中身の呼び出し機能
.pageファイル内にて、
global.<コンポネント名>で呼び出せます。
■Pageオブジェクトのトップレベルのクラスに対しのオートインジェクション機能
app.diconファイルにS2Tapestry.diconを登録してください。
デフォルトでトップレベルのインジェクションクラスが記述してあります。
■Tapestryのサービスに対するオートインジェクション機能
自動で実行されます。
■ページ間Beanデータコピー機能
上に同じ。
■リスナーメソッドを、IPage実装オブジェクトからS2コンテナ上のオブジェクトに委譲する
S2Tapestry.diconをincludeする。
そしてHTMLファイルに listener="ognl:global.listeners.sampleComponent.sampleMethod" のようにリスナを指定する。
■IPage実装クラスにAOPを適用する
diconファイルに設定を記述する。
1.S2TapestryFullをeclipseのプロジェクトとしてインポート
2.Tomcatプロジェクトである事を確認した上でTomcatを起動
3.http://localhost:8080/S2TapestryExample/appをひらく
注:eclipseとTomcatプラグインをいれている事を前提としています。
|