Wicket (6)コンポーネント その1
「オープンソース徹底活用 WicketによるWebアプリケーション開発」を読み
Wicketについて学習しています。
以下、コンポーネントについて。
(コンポーネントについては
「Wicket (3)View層の構成 その1」「Wicket (4)View層の構成 その2」も
参照してください。)
1.コンポーネントを作成するには、
HTMLタグ内にwicket:idという属性をつけてIDを指定する。
HTMLファイルと同名のJavaファイル内で
コンポーネントオブジェクトをnew()するときの第一引数にIDを渡す。
2.HTMLタグで他のコンポーネントを子要素として含むコンポーネントは
(<form>タグなど)
HTMLファイルと同名のJavaファイル内でも
子要素のコンポーネントオブジェクトを保持する。
この子要素を含むコンポーネントをコンテナと呼ぶ。
コンポーネントを定義済みのHTMLファイルを大幅修正する場合、
Javaファイルのコンポーネントの定義も書き換える必要がありそう。
EclipseのプラグインなどでHTMLファイルのリファクタリングをサポート
してくれるものはないだろうか・・・。
さまざまなコンポーネントが用意されているようだが
以下、注目したコンポーネントを挙げてみます。
1.Link
文字通りリンクであるが、「このLinkクラスの特徴は、
onClickイベントハンドラを使える全てのHTMLタグに使用可能
だということです。」(※1)
<table>内の<td>タグにwicket:id属性を追加し
Javaファイル側でonCleck()イベントハンドラを定義することも可能。
従来のASPなどの感覚で同じことを実現するには
<td>タグの中に改めてLinkタグを定義する形となる。
WicketのLinkはHTMLが複雑にネストするのを防いでくれると思う。
2.ListView
リスト形式で表示するためのコントロールだが
<table>内の要素以外にも、繰り返し表示したい
さまざまなHTMLタグに使うことができる。
先のLinkもそうだが、対象となるHTMLタグに直接wicket:id属性
を追加してコントロールとすることができるのは
Wicketを使う上で大きな利便性を提供すると思う。