2.3. アプリケーションレベルの検証
Hibernate Validator は、アプリケーションコードのどの場所でも適用できます。
ClassValidator personValidator = new ClassValidator( Person.class ); ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) ); InvalidValue[] validationMessages = addressValidator.getInvalidValues(address);
最初の 2 行はクラスチェックのために Hibernate Validator を準備します。最初の行は Hibernate Validator に組み込まれたエラーメッセージに依存します (「エラーメッセージ」 を参照)。次の行はこれらのメッセージのリソースバンドルを使用します。これらの行は一度だけ実行し、検証機能インスタンスをキャッシュすることが推奨されます。
3 行目は実際に
Address
インスタンスを検証し、InvalidValue
のアレイを返します。アプリケーションロジックはエラーに反応できるようになります。
また、Bean 全体の代わりに特定のプロパティをチェックすることもできます。これは、プロパティごとのユーザーの対話に役に立つことがあります。
ClassValidator addressValidator = new ClassValidator( Address.class, ResourceBundle.getBundle("messages", Locale.ENGLISH) ); //only get city property invalid values InvalidValue[] validationMessages = addressValidator.getInvalidValues(address, "city"); //only get potential city property invalid values InvalidValue[] validationMessages = addressValidator.getPotentialInvalidValues("city", "Paris");