Tweet前回に引き続き、Validator。今回は、自前のカスタムValidatorを作るときどうするかっていう、備忘録です。あるDBの項目で重複を許したくない場合(ユニークチェックですね)を例として取り上げます。DBFluteを想定し、EMPテーブルのidという項目の重複がある場合にエラーとなる場合です。javax.faces.validator.Validatorインターフェースを継承したMyEmpDuplicateValidatorクラスを作成します。場所はDoltengであらかじめ作成されているvalidatorというディレクトリに置きました。nullな場合無視します。EMPテーブルのid項目に対して件数を取得しています。args);}}}[/java]validateメソッドを実装します。その中で、DBにアクセスする必要があるので、DBFluteのBehaviorをInjectさせて、件数を取得し、件数がある場合に、JSFの作法にのっとり、ValidatorExceptionをthrowしてます。MESSAGE_IDで指定した、文言がエラーとして出力されるので、resourcesのpropertyファイルに追記しておきます。IDが重複しています。[/code]そして、アノテーションを使えるようにするためにインターフェースを作成します。場所は上記と同じ場所に配置しました。id;[/java]と書くだけで、重複チェックが行われるわけです。ややこしいように見えますが、一度やってしまうと簡単にカスタムValidatorが作れます。UedaWeb関連の会社でエンジニアをしています。最近はiOS,Androidの開発を中心に、その他サーバ周りもやってます。当ブログはインターネットテクノロジーを中心に、管理人の備忘録がわりに気づいたことを配信します。