Używam sprawdzania poprawności dla fasoli w moim projekcie i chcę napisać niestandardowy weryfikator dla istniejącej adnotacji ograniczenia.Zarejestruj niestandardowy obiekt ConstraintValidator dla istniejącego ograniczenia
Na przykład mam klasę, która reprezentuje datę/godzinę o nazwie CustomDateTime
. W klasie, która używa tej klasy jak na przykład data urodzenia Chciałbym opisywanie tej dziedzinie @Past
:
public class Person
{
@Past
private CustomDateTime dateOfBirth;
}
I wtedy utworzyć własny walidator poprzez wdrożenie ConstraintValidator<Past, CustomDateTime>
. To jednak nie działa, ponieważ implementacja sprawdzania poprawności nie ma wiedzy o niestandardowym weryfikatorze. Następnie rzuca: javax.validation.UnexpectedTypeException: No validator could be found for type: com.example.CustomDateTime
.
wiem, że zazwyczaj utworzenie osobnego adnotacji takiego:
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = {CustomDateTimePastValidator.class})
public @interface Past
{
....
}
Ale to wydaje się podwójnym kodem do mnie ;-)
Jak mogę zarejestrować niestandardowy walidator do stosowania z @Past
?
@ siebz0r Czy to działa dla ciebie? –