[Seasar-user:2410] Re: [S2JSF] 他の入力値を参照するvalidator
O.K.U.
oku
2005年 7月 21日 (木) 21:53:43 JST
O.K.U.です。
----- Original Message -----
From: "Yasuo Higa" <[E-MAIL ADDRESS DELETED]>
> S2JSFの場合、Validatorもdiconファイル(allvalidator.dicon)に
> 登録されているので普通のコンポーネントと同じです。
うまく値が設定されていないので、詳しく調べたところ、
setterが呼ばれていないのではなくて、diconで validator の instanceを
設定していない(=singleton)にもかかわらず、少なくともリクエスト毎には
validatorのクラスのインスタンスが別になっていました。
なので、setter で値をセットする変数を static にしてしまえば、その値は
void validate(FacesContext,UIComponent,Object)
が起動されるときにも参照できるのですが...
さらに調べてみると、dicon で instance をどのように設定しても、
少なくとも request 毎にはインスタンスは別になっていました。
また setter は、デフォルトだと jboss 起動時に1回呼ばれるのですが
それ以外では、いずれも(例えば request を指定したとしても)、
セッション確立時に一度呼ばれるだけでした。
action の時と動作が違うようなのですが..?
ちなみに、html と dicon の記述は以下のようなイメージです。
●htmlの記述
<input id="password2" type="password"
m:value="#{registDto.password2}" m:required="true">
<span m:inject="s:validator" m:binding="#{equalsValidator}" />
</input>
●diconの記述
<component name="equalsValidator"
class="xxx.validator.EqualsValidator">
<property name="anotherId">"registForm:password"</property>
</component>
Seasar-user メーリングリストの案内