Thymeleaf возвращает сообщение об исключении Java вместо моего пользовательского сообщения об ошибке. Как я могу заставить его возвращать то, что я хочу?

#java #spring #spring-boot #spring-mvc #thymeleaf

#java #весна #spring-boot #spring-mvc #thymeleaf

Вопрос:

Я реализую проверку формы и сталкиваюсь с проблемами с проверкой BigInteger в сообщениях об ошибках thymeleaf. Вот моя аннотация свойства:

 @Digits(integer = 9, fraction = 0, message="Must be a positive integer")
private BigInteger myInteger;
  

Контроллер:

 @PostMapping("/")
    public String whatever(@Valid @ModelAttribute Entity myEntity, BindingResult result) {
    
        if (result.hasErrors()) {
            return "index";
        }
        //TODO
        return "index"; 
}
  

И, наконец, HTML-код

 <span th:if="${#fields.hasErrors('myEntity.myInteger')}"
th:errors="*{myEntity.myInteger}"></span>
  

Теперь это работает нормально для других моих переменных BigDecimal, но BigInteger заставляет Thymeleaf отображать a NumberFormatException вместо моего пользовательского сообщения "Must be a positive integer." , предположительно из-за какого-то приоритета в обработке ошибок, с которым я не знаком. Я пытался искать ответы, но большинство из них направляют меня к какому messages.properties -либо основанному решению, которого нет в моей папке проекта. Что мне нужно сделать, чтобы мое пользовательское сообщение отображалось вместо NumberFormatException ?

Комментарии:

1. покажите свой запрос, т.е. сущность

2. Вы можете просто создать messages.properties в resources папке и добавить typeMismatch.table.myInteger = Must be a positive integer . Где table ваше имя таблицы в нижнем регистре.

3. @Seldo97 Большое вам спасибо! Я пробовал это раньше, но это не сработало, потому что я не вводил его в нижнем регистре, спасибо, что специально указали на это

4. @TypoTC Я добавил ответ, вы можете пометить его как решение вашей проблемы.

Ответ №1:

Вы можете просто создать messages.properties в resources папке и добавить typeMismatch.table.myInteger = Must be a positive integer . Где «таблица» — это имя вашей сущности в нижнем регистре.