ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

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を使う上で大きな利便性を提供すると思う。

※1 「オープンソース徹底活用 WicketによるWebアプリケーション開発」 P87