今日は Tapestryを勉強してみた。
http://jakarta.apache.org/tapestry/
まずはググることから始めてみたが日本語リソース少ねー。解説記事は数えるほどで後は個人の日記ページばかり。そんなこと言ったらこのページも日記なのでえらそうなこと言えないけど。
まずは EclipseのプラグインであるSpindleをインストール。これは簡単。
後は数少ない解説記事の中から
634 – Tapestry
http://634.ayumu-baby.com/tapestry/
新Jakartaフレームワーク Tapestryがやってきた(前編)
http://www.duo.co.jp/column/35tapestry_java00.html
この辺のページを参考にしながらデモを一通り動かしてみました。基本的な考え方は
- ロジックとビューを完全分離できます。ビューは普通の HTMLファイルで作成することができます。独自タグとかは入らないピュアな HTMLファイルなのでデザイナーも安心して作業できます。もっとも画面デザインをデザイナーに委託するほどおしゃれなサイトを作った経験がないので,この辺,完全分業できるとどれくらいうれしくなるのかはピンとこなかったりしますが。
- ピュアな HTMLファイルなら,どうやってフォームの情報を取り出すのよ,という話になりますが,そこは HTMLの id属性で指定します。情報を取得したい,表示を動的に変化させたいという領域に id属性を指定しておいて tapestryが理解できるようにしておきます。
- 宣言された id属性に対し,これはテキストフィールド,これはメソッド呼び出し,といった風にそれぞれの性質を定義していくのが *.pageファイル(XML形式)です。これは *.htmlと一対一対応します。
- 後は *.javaに好きなようにロジックを実装していきます。画面遷移は *.java内で指定します。XMLファイルなどの外部ファイルではありません。この辺 Struts, JSFなどと違うところです。
という感じでしょうか。GUIアプリケーションのあるべき設計により近づいていると思うので,筋は悪くなさそうです(←えらそう)。日本語リソースが少ないのが難ですが。