あーこれ便利なのか微妙。 はじめに画面HTMLを作ってイメージを確定するような場合に一覧部分なんかはこんな感じでできてしまうと思う。 <table> <tr> <th width="100">№</th> <th width="400">住所</th> <th width="100">--</th> </tr> <tr> <td><span>1</span></td> <td><span>住所1</span></td> <td><a href="#" >更新</a></td> </tr> <tr> <td><span>2</span></td> <td><span>住所2</span></td> <td><a href="#" >更新</a></td> </tr> <tr> <td><span>3</span></td> <td><span>住所3</span></td> <td><a href="#" >更新</a></td> </tr> </table> ここに実際の実装がなされるときにこのHTMLに対しIDをつけたりとかデザイナさんにとって見れば汚染が始まるんだろうけど、そんときに使わなくなるHTMLコードをWicketのレスポンスから見えなくなるようにする場合にこの<wicket:remove>タグを使うのかな。 上記のHTMLでいうと、実装には住所2、住所3の行は不要になるので、実装に使うHTML上からは実際に消すか、コメントアウトする必要がある。だけどその場合、単なるHTMLとして見たい場合に消された、またはコメントアウトされた部分が見えなくなるのでは非常に困る。 そこでとこんな感じに<wicket:remove>を入れる <table> <tr> <th width="100">№</th> <th width="400">住所</th> <th width="100">--</th> </tr> <tr wicket:id="list"> <td><span wicket:id="no" >1</span></td> <td><span wicket:id="addr">住所1</span></td> <td><a wicket:id="upd" href="#" >更新</a></td> </tr> <wicket:remove> <tr> <td><span>2</span></td> <td><span>住所2</span></td> <td><a href="#" >更新</a></td> </tr> <tr> <td><span>3</span></td> <td><span>住所3</span></td> <td><a href="#" >更新</a></td> </tr> </wicket:remove> </table> こうすればWicketのレスポンス上では住所1の行は繰り返しになり、住所2、住所3の行は消える。また単なるHTMLとしてブラウザで確認する場合は<wicket:remove>は無視されるので、普通に住所2、住所3の部分が表示される。 そう考えるとWicketはデザインと実装からみて合理的になってる感じはするけど自分の場合、確認用と実装用を分けて管理するスタイルしかやったことないのでこのタグは便利なのかなぁと考えてしまう。これはアレか・・・はじめに確認用に作ったHTMLを本番としても使用して何か変更がある場合なんかもこのHTMLに変更を加えてお客様に見せて確認する・・・といったHTMLを1つで管理する開発スタイルには非常に有用なのではないかな。 その場合の注意点としては、画面を確定する時点で<wicket:extend>などで解決される部分をすべて考慮して作っておくってところかな。実際のHTML上では<wicket:child>となる部分にiframeを使っておくとか。部分だけ確認できる術を作っていたってしょうがない気がする。 parent.html <html> ・・・テンプレートとなる親画面のHTML ヘッダなどの定義 <wicket:child> <iframe ... alt="ここに子画面が展開される" /> </wicket:child> ・・・テンプレートとなる親画面のHTML フッダなどの定義 </html> child.html <html> ・・・省略 <wicket:extend> ここに子画面のHTML </wicket:extend> </html> http://d.hatena.ne.jp/nigredo/20080910/1221019009 |
Wicket >