stone creater's room

アクセスカウンタ

zoom RSS 【PGメモ:Java】 一覧の入力チェックに「Extends Validat」を使用する。

<<   作成日時 : 2010/08/13 00:19   >>

トラックバック 0 / コメント 0

Java Struts で一覧入力がある案件では、一覧入力チェックの Validator に
Extends Validator」を利用しているのですが、
久々に使おうと思ったら、使い方をすっかり忘れていて苦労したので、メモしておきます。

上記のリンクページからダウンロードした ValidatorExtendsRule.java ファイルを struts/varidator に配置し、
validation-extends-rule.xml に記載されている設定を、WEB-INF/validation-rule.xml に転記します。

後は、通常の入力項目と同じように、入力チェックを validate.xml に書くのみです。
一覧の入力チェックを、別の form として切りだしているのがポイントなくらい。

■validation.xml

<form name="frmExample">
   …
   <!-- 一覧(BeanのList) -->
   <field property="exampleList" depends="extends">
      <arg0 key="#" resource="false" /> ← この設定がある場合、エラーメッセージの最後の置換部分に行番号がセットされる
      <var>
         <var-name> extends</var-name>
         <var-value> exampleValList</var-value>
      </var>
   </field>
</form>
<!-- 一覧の入力チェック -->
<form name="exampleValList">
   <field property="exampleString" depends="maxbytelength">
      <msg name="maxbytelength" key="errors.maxlength.list" />
      <arg0 key="item.example.string" />
      <arg1 key="100" resource="false" />
      <var>
         <var-name> maxlength</var-name>
         <var-value> 100</var-value>
      </var>
   </field>
   <field property="exampleDate" depends="date">
      <msg name="date" key="errors.date.list" />
      <arg0 key="item.example.date" />
   </field>
</form>

■application.properties

   errors.maxlength.list={2}行目の{0}には{1}バイト以内で入力してください。
   errors.date.list={1}行目の{0}には正しい日付を入力してください。
   item.example.string=テスト文字
   item.example.date=テスト日付

入力エラーメッセージは下記のようになります。

・1行目のテスト文字には100バイト以内で入力してください。
・1行目のテスト日付には正しい日付を入力してください。

かなり便利ですよ!
ちなみに、Rules.java の 〜If判定部分をUtil化して、extendsif を作ると更に便利です。

※随分前にダウンロードしたものを使いまわしているので、最新のものとは仕様が変わっているかも…です。
 (長らく更新されていないみたいですけど)

テーマ

注目テーマ 一覧


月別リンク

【PGメモ:Java】 一覧の入力チェックに「Extends Validat」を使用する。 stone creater's room/BIGLOBEウェブリブログ
文字サイズ:       閉じる