6.4.2. JAX-RS BeanValidationハンドラ¶
本ハンドラは、リソース(アクション)クラスが受け取るForm(Bean)に対して、Bean Validation を実行する。 バリデーションでバリデーションエラーが発生した場合には、後続のハンドラに処理は委譲せずに、 ApplicationException を送出して処理を終了する。
本ハンドラでは、以下の処理を行う。
- リソース(アクション)クラスのメソッドが受け取るFormに対する Bean Validation を行う。
処理の流れは以下のとおり。
6.4.2.2. モジュール一覧¶
<dependency>
<groupId>com.nablarch.framework</groupId>
<artifactId>nablarch-fw-jaxrs</artifactId>
</dependency>
<!-- Bean Validationのモジュール -->
<dependency>
<groupId>com.nablarch.framework</groupId>
<artifactId>nablarch-core-validation-ee</artifactId>
</dependency>
6.4.2.3. 制約¶
- リクエストボディ変換ハンドラ よりも後ろに設定すること
- このハンドラは、 リクエストボディ変換ハンドラ がリクエストボディから変換したForm(Bean)に対してバリデーションを行うため。
6.4.2.4. リソース(アクション)で受け取るForm(Bean)に対してバリデーションを実行する¶
リソース(アクション)のメソッドで受け取るForm(Bean)に対して、バリデーションを実行したい場合は、 そのメソッドに対して Valid アノテーションを設定する。
以下に例を示す。
// Personオブジェクトに対してバリデーションを実行したいので、
// Validアノテーションを設定する。
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Valid
public HttpResponse save(Person person) {
UniversalDao.insert(person);
return new HttpResponse();
}