わんくまでは珍しいJavaを中心とした日記です
シンプルなバリデーションコードを書くにはどうしたらよいかなと色々試行錯誤していましたが、最近最適解のようなコードができました。そのうち業務で作ったやつをフィードバックして公開しようと思いますが、以下のようなコードでかけます。例のはStrutsのActionFormのですが、かなりシンプルじゃないでしょうか。
public ActionErrors validate(引数はいろいろ){ ActionErrors errors = new ActionErrors(); Validators validators = new Validators(this,errors); validators.required("foo","ふぅ").isEmail(); validators.required("bar","ばぁ").isInt().isInRange(50,100); validators.notRequired("buzz","ばず").isTelephoneNumber(); }
投稿日時 : 2007年7月27日 23:50
できればimport文も記述願いたい… isInt().isInRange(50,100); あたりはreturnされるオブジェクトを利用して連鎖的にチェックを記述できるようにしているのだと思うけど… 個別のクラスがはっきりしないことにはちょっとわかりません。
戻り値自体がバリデータになっていて、 バリデーションエラーがあれば、 保持するActionErrorsにエラーを追加して、 なにもしないバリデータを返すって感じです。 きちんとコードを整備してから公開しようと思っているのですが・・・・ 自分の場合は「利用者はどう書けるのか」をまずデザインします。 クラス設計から行うと、使いにくいものが出来上がったりするのですが、 上記のことを意識すると、非常に使いやすいものが出来上がったりします。 なので、利用コードだけでも意外と意味があったりします。
シンプルなバリデーションその2
dasda
s
Powered by: Copyright © かつのり