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