[CUBBY-93] バリデーションのタイミング指定 Created: 2008-02-20 Updated: 2009-07-05 Resolved: 2008-03-24 |
|
Status: | Closed |
Project: | Cubby |
Component/s: | Core |
Affects Version/s: | None |
Fix Version/s: | 1.1.0-rc1 |
Type: | New Feature | Priority: | Major |
Reporter: | baba | Assignee: | baba |
Resolution: | Fixed | Votes: | 0 |
Labels: | None |
Description |
いまのバリデーションはアクションメソッドの呼出しをフックしてバリデーションをかけていますが、これを「バインド前」と「バインド後」に分けて、指定した方でバリデーションするようにしたいです。 たとえば、TODOアプリのLoginActionのバリデーションは
以下のような方法で指定できるといいかと思っています。
独自のValidationRuleを使うアプリに適用すると、従来の動きとすこし異なってしまうのが気になります。 |
Comments |
Comment by baba [ 2008-03-24 ] |
ドキュメントに反映しました。 |
Comment by baba [ 2008-03-21 ] |
バリデーションコピーはgetRules()を使う方法だとフェーズごとのバリデーションをうまく表現できないので、DefaultValidationrules#addAll(ValidationRules)を追加して、#getRules()はdeprecatedに指定しました。 |
Comment by baba [ 2008-03-20 ] |
あとはドキュメントに反映させる |
Comment by baba [ 2008-03-20 ] |
cubby r882
サンプルとして、cubby-examplesのtodo/action/LoginActionを参照してください。 フェーズごとのバリデーション 定義済みのフェーズとして、以下の2つを DefaultValidationRules に追加しました。
フェーズはValidationRules#getValidationPhases() をオーバーライドすることでカスタマイズできます。 また、ValidationExceptionを追加しました。 |
Comment by baba [ 2008-02-21 ] |
>これ素朴な疑問なんですが、バインドの動きをオーバーライドしたい場面ってありますかね? それと、バリデーションを途中でやめたい場合もあると思うので、ある例外が投げられたらバリデーションを中断してエラーページへ遷移する、っていう動きもつけたいですね。 |
Comment by agata [ 2008-02-20 ] |
検証の2回に分けてやるのは賛成です。本来そういう動きが正しいと思いますので。 >1.のほうが、Actionのサブクラスでバインドの動きをオーバーライドできたりするのでよいかなー 2が普通ありそうな実装方法ですよねー。 |
Comment by baba [ 2008-02-20 ] |
実装する方法は2つを考えました。
2.のほうはフレームワークとしては柔軟な気がしますが、1.のほうが、Actionのサブクラスでバインドの動きをオーバーライドできたりするのでよいかなー、と思ってます。 みなさん、ご意見をください。 |