[Wicket-ja-user 264] Re: MultipleChoiceコンポーネントでモデルにCollectionを使わずStringを使いたい

Zurück zum Archiv-Index

Tsutomu Yano benbr****@mac*****
2008年 12月 8日 (月) 22:39:21 JST


On 2008/12/08, at 10:17, Susumu ISHIGAMI wrote:
> モデルを工夫して使って、できるだけ既存のコンポーネントに手を加えないというのは、Wicketではスマートな方法となのですね。
>
> 初めはなんて強引で遠回りな、と思ったのですが、矢野さんのコードそうなっていたので、安心しました。
>

 んーそうですね、ここはWicketの特徴的な部分でしょうね。
 「値を保持しているのはコンポーネントではない」というのはWicketの特徴的な部分ですね。かといってModelでも
なくて。

・コンポーネントはタグの生成が役割
・モデルは「値がどこにあるか」を知っているロケータ(Locator)
・値はモデルがどっかから取ってくるので、どこにあってもいい

 この仕組みのおかげで、コンポーネントをデータベースや外部リソースやプロパティファイルなどなど、
いろんなものに結合できるんですね。コンポーネントから見れば、モデルがどっかから値をとってきてくれるので。

 というわけで、今回のような目的でも、コンポーネントがほしいCollection<String>がどこにあるのか、
どうやって取得できるのかはモデル、ということになります。
 実際、今回のプログラムは、モデルを差し替えるだけで、カンマ区切りの文字列以外の実装に差し替えられる
わけです。極論すれば、モデルがデータベースとやりとりしても、コンポーネントは何も知らずに動く。

 モデルはねえ、たしかにちょっと説明しにくいんですが、これがないとWicketのいいところがごそっと
なくなってしまいますからねえ。

 私は、Wicketでは、モデルの概念が一番のカギになるかなーと思ってます。
 

---------------------------------------------------
矢野 勉(やの つとむ)
電子メール:benbrand_at_mac.com
---------------------------------------------------



Wicket-ja-user メーリングリストの案内
Zurück zum Archiv-Index