external service
ExternalLinkコンポーネントを使うメリットは以下の二つです。
- 任意のページに対してパラメータを付加して実行できる。
- パラメータを付加した形でURLが生成されるので、URLが特定できる。
また、ページクラス内*1で、上記URLを生成したい場合は、
cycle.getEngine() .getService( Tapestry.EXTERNAL_SERVICE ) .getLink( cycle, cycle.getPage(), new Object[]{ "MyPageName", param1, param2} ) .getURL()
のようにします。*2
これに対し、任意のリスナを呼び分けたい(イベントドリブン)場合はDirectLinkコンポーネントを使うことになります。
ちなみに、Tapestryには任意のページの任意のリスナを呼ぶ、という考え方はありません。