A Day In The Life

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

maskバリデータ

Struts-Validatorって結構いろんなことができますね。

maskバリデータとか1.2から追加になったvalidwhenバリデータとか。。。

なかなか便利です。maskバリデータのvalidation.xmlはこんな感じ

<formset>
 <form name="sampleForm">
  <field property="password" depends="mask">
   <msg name="mask" key="error.password"/>
   <var>
    <var-name>mask&lt;/var-name>
    <var-value>.*([0-9]+.*[a-z]+)|([a-z]+.*[0-9]+).*&lt;/var-value>
   </var>
  </field>
 </form>
 ...
</formset>

var-valueタグに正規表現を指定して合ってれば検証OK、合ってなければ検証NGとなります。

よく使う正規表現なんかは定数を宣言しておくと集中管理ができて便利です。

たとえばこんな感じ

<global>
 <constant>
  <constant-name>passwordmask&lt;/constant-name>
  <constant-value>.*([0-9]+.*[a-z]+)|([a-z]+.*[0-9]+).*</constant-value>
 </constant>
</global>
<formset>
 <form name="sampleForm">
  <field property="password" depends="mask">
   <msg name="mask" key="error.password"/>
   <var>
    <var-name>mask</var-name>
    <var-value>${passwordmask}</var-value>
   </var>
  </field>
 </form>
</formset>

宣言した定数は${定数名}で参照できます。