[mayaa-dev:89] Re: validator part ( Re: Mayaaのみでアプリケーションを作るためのフレームワーク
Yasuhiro Oguro
[E-MAIL ADDRESS DELETED]
2008年 3月 17日 (月) 12:48:43 JST
お疲れ様です。小黒です。
ご指摘ありがとうございます。
まず返答の前に、土日に気がついたのですが
commons-validatorで作ったと言ってますが、今のまま進めると
validator-rules.xml(Strutsのvalidatorパッケージ内)を参照しているので、
その部分を新たに作る必要があります。ActionMessageを使わない
FieldChecksクラスを作ればよさそうですが・・・
で、
(a.の話ですが)
> > <form name="/modify.html">
> > と書く暫定仕様にしています。
formのnameをpathにしてしまうのは強引なので、やはりpropertiesで
path=form(/modifyAction.html=appForm)の羅列を定義して、web.xmlの初期化変数で複数のpropertiesファイルを指定できるようにしたいと思います。
> > b. web.xmlのfilter定義にvalidation.xmlの位置を指定する
> > paramを追加しています。(StrutsではStruts-config.xmlの最後に書かれています)
> この方式だと、いろいろな画面のバリデーションが全部ひとつの
> ファイルに入るので、見通しが悪くなりやすいですね。
これはvalidation.xmlを,区切りで複数定義できるのでそちらで暫定対応としたいのですがどうでしょうか。慣例としてappForm=validation-appForm.xmlを定義するのはどうでしょう。(mayaa-sample-app.warを前提に書いてます)
# Filterの単体テストってどうやって作るんでしょう・・・
以上 宜しくお願いします。
---
NEEC System Technology Co.,Ltd.
Y.Oguro <[E-MAIL ADDRESS DELETED]> ☆.。.:*・°
On Mon, 17 Mar 2008 08:03:41 +0900
suga <[E-MAIL ADDRESS DELETED]> wrote:
> 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 先を決める、と。
>
> 結果の格納方法、およびそれに対応した個別のバリデーションメソッド
> (メールアドレス用とか、数値で桁数範囲指定とか) だけユーティリティ的に
> 用意しておけば、あとは同様にできると思います。
> ファイルを変更したら即座に反映されるのもお手軽さにつながるでしょう。
>
> --
mayaa-dev メーリングリストの案内