[Tapestry] 構造
Tapestryについて構造の理解が出来たような気がするのでエントリしてみる。
Tapestryは1サーブレットとして存在する形となる。(シーケンス図)つまりTomcatなどのサーブレットコンテナさえあれば動作可能というわけである。Tapestryを使うことは、web.xmlに記述することになる。
<servlet>
<servlet-name>workbench</servlet-name>
<servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>workbench</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
これはTapestryに付属しているサンプルアプリケーション
workbenchの例であるが、普通のサーブレットベースのアプリケーションと同じだと思う。
以降はTapestry独自の形式になる。Tapestryにページを登録することになる。これはsample.applicationという拡張子
applicationのファイルにページやサービスを記述していく。この辺りはAppendix C. Tapestry Specification DTDsを参照すると良い。
各ページは、ページ仕様(拡張子:page)、HTMLテンプレート(拡張子:html)、アプリケーションクラス(拡張子:class)となる。アプリケーションクラスはjavaで記述されるビジネスロジックと考えてよい。HTMLテンプレートは、ビジネスロジックが埋め込まれる雛型になるHTMLファイルである。タグの属性にjwcid(Java Web Component IDの略)を付加することで、動的な処理の埋め込みが可能となる。そしてそのjwcidの振る舞いを記述するのがページ仕様となる。ページはそれぞれ最大で3つのファイルから成立することになるが、その関係は以下の図の通りである。

Strutsがスタンダードになりつつあり、Tapestryは影になっているような気がするが、Tapestryの利点として、HTMLで雛形を作成しておくと、ページフローが非常に分かりやすい。デザイナとデベロッパの分離が明確になるし、イメージも伝わりやすい。jspでも同様のことは可能であるが、Tapestryでは拡張子もhtmlだし、直感性に優れていると思う。まだまだどの辺りがオーバヘッドになるかなど分析できていないが、この構造さえ理解できてしまえば、結構Tapestryを扱いやすくなるのではないかと思う。
では、本日はこのくらいで。またTapestryについて、アップしますね。
Comments