A Day In The Life

とあるプログラマの備忘録

ページを指定してバリデーション

ValidatorFormを使用して複数JSPを1Form(ワンビッグフォーム)で管理するとページごとのバリデーションができなくて困ることがあります。

そんな時はValidatorActionFormを使ってやるとバリデーションをActionごとにできるので便利だったりします。

public class SampleForm extends ValidatorActionForm {
 private String customerName;
 …
 ……
}

validator.xml

<form name="/sample">
 <field property="customerName" depends="required">
  …
  ……
 </field>
</form>

こんな感じです。
さらにこれと同じようなことがValidatorForm使ってもできるんです。

まずJSP

<html:form action="/sample">
 <html:hidden property="page" value="1" />
 …
 ……
</html:form>

のようにページ番号をふっていきます。

あとはvalidator.xml

<form name="SampleForm">
 <field property="customerName" depends="required" page="1">
  …
  ……
 </field>
</form>

のようにページを指定してやると指定したページだけバリデータが走るように設定できます。
ちなみにpageというフィールドはValidatorFormにあらかじめ用意されているのでFormは修正しなくてもOKです。