Формат ошибки проверки при весенней загрузке с помощью ресурса сообщений - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь получить правильно отформатированное сообщение об ошибке проверки из ресурса сообщения.

Ожидается: имя пользователя не может быть пустым. Что я получаю: не может быть пустым. validation_en.properties:

NotEmpty=can't be empty

messages_en.properties

username=Username

Мой класс

    @Value
public class LoginForm{
    @NotEmpty
    private final String username;
...

Класс конфигурации:

    @Configuration
public class WebAdaptorConfiguration implements WebMvcConfigurer {
    @Bean
    public MessageSource messageSource() {
        ResourceBundleMessageSource resource =
                new ResourceBundleMessageSource();
        resource.setBasenames("messages","validation");
        resource.setDefaultEncoding("utf-8");
        return resource;
    }

    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
        sessionLocaleResolver.setDefaultLocale(new Locale("fa"));
        return sessionLocaleResolver;
    }
    @Bean
    public LocalValidatorFactoryBean getValidator() {
        LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
        bean.setValidationMessageSource(messageSource());
        return bean;
    }

}

Просмотр:

<label th:if="${#fields.hasErrors('username')}" th:errors="*{username}"
                        class="validation-message"></label>

1 Ответ

0 голосов
/ 29 марта 2020

Вы указали сообщение по умолчанию для ограничения @NotEmpty, которое всегда должно быть «не может быть пустым».

Чтобы использовать пользовательское сообщение для ограничения @NotEmpty, специально проверяющего поле username в LoginForm, необходимо соблюдать соглашение об именах свойств сообщения:

Ограничение. formName.propertyName

Итак, в вашем случае свойство сообщения для вашего свойства username становится NotEmpty.loginForm.username=username can't be empty

Я не смог найти ссылку на это соглашение в документах валидатора Hibernate или Spring документы, но эта статья также объясняет это - https://www.codejava.net/frameworks/spring/spring-mvc-form-validation-example-with-bean-validation-api

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...