2017-01-27 10 views
1

@Validとすると、リクエスト本体を解析し、@NotEmpty@Size(min = 5)のようなアノテーションで検証することができます。身体を検証するための複数の方法がある方法はありますか?たとえば、いくつかのエンドポイントでは、いくつかのバリデータ(私の場合は@NotNull)を無視したいと思います。Spring RESTリクエストボディをさまざまな方法で検証する方法は?

私の推測では、@ValidUnlessNullのようなカスタムアノテーションを作成することでしたが、どのように私は(私はFilterHandlerMethodArgumentResolverを実装しようとした)@RequestBodyの仕事をしなくても、そのリゾルバを実装することができますか?

答えて

4

カスタム検証グループを定義し、@Validatedアノテーションを持つグループを選択できます。

1)空のインターフェイスを定義し、検証グループ識別子として使用されること:

public interface FirstValidateGroup{} 

2)バインド検証注釈指定されたインターフェイスに(グループ):

public class Person{ 

    @NotBlank(groups = {FirstValidateGroup.class}) 
    private String firstName; 
    @NotBlank 
    private String lastName; 

    //... getters and setters 
} 

注、あなたができること1つのプロパティに対して複数のグループをバインドする@Validated注釈と検証の

3)グループの選択:

public ResponseEntity<Person> add(@Validated({FirstValidateGroup.class}) 
            @RequestBody Person person){ 
    ... 
} 

、唯一firstNameプロパティが検証されます。 @Validatedアノテーションに複数のグループを指定できます。

関連する問題