6

プロジェクトで bean-validation を使用しており、既存の制約アノテーション用のカスタム バリデーターを作成したいと考えています。

たとえば、という名前の日付/時刻を表すクラスがありますCustomDateTime@Pastこのクラスを生年月日などとして使用するクラスでは、フィールドに次の注釈を付けたいと思います。

public class Person
{
    @Past
    private CustomDateTime dateOfBirth;
}

次に、 を実装してカスタム バリデータを作成しますConstraintValidator<Past, CustomDateTime>。ただし、検証の実装にはカスタム バリデータに関する知識がないため、これは機能しません。次にスローします: javax.validation.UnexpectedTypeException: No validator could be found for type: com.example.CustomDateTime.

通常、次のような別の注釈を作成することを知っています。

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {CustomDateTimePastValidator.class})
public @interface Past
{
    ....
}

しかし、それは私にはダブルコードのようです;-)

で使用するカスタムバリデータを登録するにはどうすればよい@Pastですか?

4

1 に答える 1

5
于 2013-01-14T20:27:55.283 に答える