Rozwiązanie z Jaiwo99 działa, ale nie byłem w stanie ustawić niestandardowego komunikatu z zewnątrz (jest on nadpisywany przez wiadomość od @Pattern
). Jeśli trzeba, że proponuję po prostu użyć coś takiego:
@Pattern(regexp = SomeUtilClass.UUID_PATTERN, message = "TokenFormatError")
private String token;
można umieścić wzór w jakimś statycznym polu końcowego, aby uniknąć dublowania:
public static SomeUtilClass {
public static final String UUID_PATTERN = "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$";
}
Jeśli chcesz dokonać walidacji na * * @ RestController ** endpoint wtedy myślę, że łatwiej jest po prostu oczekiwać ** typu java.util.UUID **. Jeśli nie będzie możliwe odwzorowanie wartości z żądania HTTP na prawidłowy UUID, to sprężyna po prostu odmówi wykonania żądania :) –