タグファイルはすげー強力!

やっぱJSP2.0いいっす。

例えば、右から左に商品画像を並べたいときとか、
JSP2.0を使わなかったら、ごりごりスクリプトを書いてコピペか、
苦労してカスタムタグを書くしかなかったと思います。
JSP2.0のタグファイル、フラグメントを使うと
次のような汎用的なレイアウト用なんかでも、簡単、気軽に作れます。

                                                                                                                • +
商品名:商品1 商品名:商品2 商品名:商品3 商品名:商品4
説明 :・・ 説明 :・・ 説明 :・・ 説明 :・・
                                                                                                                • +
商品名:商品5 商品名:商品6              
説明 :・・ 説明 :・・              
                                                                                                                • +

  
    商品名:${item.name}<br>
    説明 :${item.info}
  

horizonPanelはタグファイルで用意します。
items属性はCollectionを受け取れるようにしています。
width属性はテーブルのwidthに使います。
columnsは横のセル数です。


horizonPanelの中の処理ではJSTLを駆使して、
Collectionの数の分、右から左に商品画像を並べていく処理を書きます。
(処理が複雑ならViewHelperを使いましょう)
columnsの数まで出力すると、trタグを出力し、
次の行に移動するというレイアウトのコントロールを担当します。


表示は呼び出し元が決定します。
1つ1つのセルの表示は属性cellの中身がタグファイルの中で評価されて、
出力されます。cell属性にはフラグメントの設定をおこなっておくと、
horizonPanelの中の変数(ここではitem)を参照することができます。
呼び出し元で参照できる変数は、variableディレクティブで指定します。


horizonPanelはCollectionをもらうってことしか知らないので、
要素の中身はどんな型でもオッケーです。
中身は呼び出し元が知っていて、要素の表示形式を決定するって感じです。


何が嬉しいって、処理やレイアウトをタグファイルに持たせて、
表示はフラグメントで、呼び出し側から渡せるっていうとこが最高です。
ほとんどビューのリファクタリング、ロジックの抽出ですよ。


タグファイルの中身は今手元にないので、
明日にでも追記しておきますね。


【連載 】Tomcat5の新機能
第2回:EL式とタグファイル
http://www.stackasterisk.jp/tech/java/tomcat5th02_02.jsp