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

0

Używam Spring Boot. Posiadam walidowany parametr do serwisu

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

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

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

Ustawiam dla wyjątku ExceptionHandler

@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

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?

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1