[mayaa-dev:88] Re: validator part ( Re: Mayaaのみでアプリケーションを作るためのフレームワーク

suga [E-MAIL ADDRESS DELETED]
2008年 3月 17日 (月) 08:03:41 JST


suga です。

2008/3/14 Yasuhiro Oguro <[E-MAIL ADDRESS DELETED]>:
>  結局気になってしまってcommons-validatorを読んでしまいました。
>
>  StrutsのValidatorPlugInクラスの中身をコピペして
>  ValidatorFilterを書いてみました。
>
>  a. Strutsと異なるのがpathとformnameの紐付けが無いので、
>  validation.xmlに
>  <form name="/modify.html">
>  と書く暫定仕様にしています。
>
>  b. web.xmlのfilter定義にvalidation.xmlの位置を指定する
>  paramを追加しています。(StrutsではStruts-config.xmlの最後に書かれています)

この方式だと、いろいろな画面のバリデーションが全部ひとつの
ファイルに入るので、見通しが悪くなりやすいですね。
それと非定型のバリデーションをする場合に、このファイルと別の
ファイル (コード?) に分散してしまうのが難です。

Mayaa の標準スクリプトエンジンであるところの Rhino を使って
書くようにした方が良いかもしれません。


>  c. 評価結果はValidationResultsをリクエストにValidatorFilter.CONST_REQUEST_SCOPE_VALIDATORRESULTS
>  という名前で詰めています。

評価結果の扱い方は基本これで良いと思います。

仮にバリデーション用のコードを書いたスクリプトファイルを *.vjs
として、バリデーションが必要な HTML の beforeRender で
load("....validation.vjs"); のようにして呼び出す形でどうでしょう。
その中で同じような方法で評価結果を格納して、beforeRender 内で
判定して forward 先を決める、と。

結果の格納方法、およびそれに対応した個別のバリデーションメソッド
(メールアドレス用とか、数値で桁数範囲指定とか) だけユーティリティ的に
用意しておけば、あとは同様にできると思います。
ファイルを変更したら即座に反映されるのもお手軽さにつながるでしょう。

-- 
suga ( [E-MAIL ADDRESS DELETED] )


mayaa-dev メーリングリストの案内