Labelを使った動的な文字列の表示
Wicketが持つコンポーネントの中で,最もシンプルなのはLabelコンポーネントだろう。Labelコンポーネントは,HTMLにシンプルな文字列を動的に埋め込みたい時に使用する。
Labelコンポーネントは,実は既に「 超基本構成」のエントリで使用している。ここでは,Labelコンポーネントに関するコードのみを取り上げてみよう。
まず,Labelコンポーネントに対応するPOHPの部分は,以下のような感じだ。
ここに名前が入る
spanタグを使って,「ここに名前が入る」という文字列をタグ付けしている。その「wicket:id」属性の値として,このタグを特定するためのIDを指定している。
次に,LabelコンポーネントをWebPageクラス内でどのように使用したかを見てみる。
add(new Label(“name”, “よういちろう”));
Labelクラスのコンストラクタの第一引数として,wicket:id属性で指定した値を記述している。さらに第2引数には,動的に表示させたい文字列を指定している。このコードを実行すると,「ここに名前が入る」という文字列が「よういちろう」に動的に置換されてWebブラウザに表示されるのは,「 超基本構成」のエントリで紹介した通りだ。結果のHTMLは,以下のようになる。
よういちろう
上記の例では,spanタグを使用したが,実はLabelコンポーネントはタグの種類を問わない。Labelコンポーネントは,wicket:id属性で指定されたタグのBODY部分の文字列を置き換える,という動きをする。なので,例えば「
」というようにBODY部分を持たないタグに対してLabelコンポーネントを適用しても,結果のHTMLには何も変更がされない。
また,BODY部がごっそりと入れ替わるので,例えば「 ここに名前が入る」として太字指定をしていたとしても,Labelコンポーネントの動作によって タグも合わせて置換されてしまう。この点は注意が必要だ。
Labelコンポーネントの動きは,POHPを語る上で最も基本的な動作なので,しっかり押さえておこう。