[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 メーリングリストの案内