[Seasar-user:13428] Re: [teeda] Validationエラー時にprerenderが実行されるとき、フォームの値がPageクラスにセットされていない
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 3月 26日 (水) 22:30:06 JST
小林 (koichik) です.
Date: Wed, 26 Mar 2008 21:47:39 +0900
From: "Mitsutaka Sato" <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:13427] [teeda] Validationエラー時にprerenderが実行されるとき、フォームの値がPageクラスにセットされていない
> @required
> public String aaa;
> @required
> public String bbb;
> @required
> public String ccc;
>
> このようにページクラスに3つのフィールドがあって、それぞれInputTextになっているとします。
> このとき、フォームでbbbとcccにのみ値を入力しsubmitすると、aaaのRequiredでValidationエラーとなりますが、
> このとき呼び出されるprerenderでbbbとcccの値を参照したくても、nullになっています。
バリデーションでエラーになった場合,ページクラスの
プロパティは更新されません.
> どのような場面で使いたいかというと、
> 例えばフォームdddの値にしたがって、フォームeeeのSelectBoxの中身を変えたい場合などです。
どういう画面なのかよく分かりませんが,
画面全体を入力した場合のボタンを「登録」とすると,
それとは別に (住所等の) 検索ボタンがあるような
イメージでしょうか?
もしそうであるなら,@Required アノテーションの
target 要素で「登録」ボタンの id を指定すれば
他のボタンが押された場合は必須チェックが行われなく
なります.
@required(target="doSubmit")
public String aaa;
@required
public String bbb;
@required
public String ccc;
上記のように指定した場合,aaa は
doSubmit ボタンが押された場合だけ必須に
なります.
bbb や ccc はどのボタンが押された場合も必須です.
target 属性は複数のボタンの id をカンマ区切りで
並べることもできます.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内