Pobieranie lokalnej wiadomości z pliku properties przez wyjątek ConstraintViolationException

Pobieranie lokalnej wiadomości z pliku properties przez wyjątek ConstraintViolationException
KL
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 7 lat
  • Postów:35
0

Używam Spring Boot. Posiadam walidowany parametr do serwisu

Kopiuj
@Override
public void registerUser(
        @Valid RegisterDTO registerDTO
) {

Walidowane pole wygląda np. następująco

Kopiuj
@NotEmpty
@Pattern(regexp = "[a-zA-Z0-9_-]{6,36}")
private String username;

Ustawiam dla wyjątku ExceptionHandler

Kopiuj
@ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ValidationErrorDTO processValidationError(ConstraintViolationException ex) {
    ValidationErrorDTO validationErrorDTO = new ValidationErrorDTO();

    Set<ConstraintViolation<?>> set =  ex.getConstraintViolations();

    for (Iterator<ConstraintViolation<?>> iterator = set.iterator();iterator.hasNext(); ) {
        ConstraintViolation<?> next =  iterator.next();

        validationErrorDTO.getFieldErrors()
                .add(new ErrorFieldDTO(((PathImpl)next.getPropertyPath()).getLeafNode().getName(),
                        next.getMessage()));
    }

    return validationErrorDTO;
}

a wiadomości do błędów trzymam w pliku validationMessages.properties

Kopiuj
NotEmpty.registerDTO.username=This field is required.
Pattern.registerDTO.username=Please enter at least 6 characters(max. 36 characters). Only letters, numbers and special characters '_' and '-'.

Mimo to, wyjątek zwraca mi taki efekt https://zapodaj.net/d1a4f695e6a7d.png.html Zamiast pobrać moją ustawioną wiadomość z pliku properties, to ustawia ten domyślny tekst. Jest sposób na pobranie lokalnej wiadomości z pliku properties?

edytowany 1x, ostatnio: Klawiatur
jarekczek
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Siemianowice Śląskie
  • Postów:500
0

Musisz posprawdzać, jakimi ścieżkami kod się uruchamia, czy dociera w spodziewane miejsce. Da się debuggerem, ale może być łatwiej przez zwykły out. Można przejrzeć logi springboot z poziomem ALL.


Przeważnie ignoruję niezarejestrowanych użytkowników.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.