[Seasar-user:2540] Re: [S2JSF] 他の入力値を参照するvalidator
Yasuo Higa
higa
2005年 8月 26日 (金) 17:44:50 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:2452] Re: [S2JSF] 他の入力値を参照するvalidator" において、
""O.K.U." <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> validatorに関しては、インスタンスはinstance属性に何を指定しても、
> validate()が呼ばれる毎には別になってしまっています。
> setterは属性がsingleton以外では、どれも同じ動作をするようですが、
> singletonと定義したときのみ、setterが呼ばれるのが起動時に1回のみとなります。
> (5)のパターンを考えると、singletonで定義し、
> setterでstaticな変数に値をコピーしておくしかなさそうです。
>
毎回インスタンスが作られるのは、JSFではコンポーネントのツリーを
request毎に作り直すようになっているためです。
変数の状態を維持するには、StateHolderを実装しなければいけないのですが
この実装が無いため、値を忘れてしまうのだと思います。
MyFacesなどのソースで標準的なValidatorの実装を見れば、StateHolderの
実装の仕方がわかります。
あるいは、org.seasar.jsf.componentにある各コンポーネントの
saveState,restoreStateの実装を見ても良いと思います。
---
ひがやすを(http://d.hatena.ne.jp/higayasuo/)
Seasar-user メーリングリストの案内