не может получить доступ к сообщениям локали - PullRequest
0 голосов
/ 26 мая 2018

Я определил два файла свойств в каталоге ресурсов.они: - messages_es_ES.properties

message.welcome=Se registro correctamente. Le enviaremos

messages_en.properties

message.welcome=Welcome To our main login page

и сейчас я пытаюсь получить доступ к этому сообщению на моемHTML-страницы с использованием тимилфилла, как это: -

<h1 th:text="#{message.welcome}"></h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. 
  Obcaecati voluptatibus odio vero et quasi, incidunt quae eaque 
  maiores repellendus totam placeat autem quam eligendi ut in 
  veritatis. Dolores, repellendus dolor.</p>

и мой файл конфигурации: -

@Configuration
public class MvcConfig implements WebMvcConfigurer {

    @Autowired
    private MessageSource messageSource;


    public MvcConfig() {
        super();
    }


    @Bean
    public LocaleResolver localeResolver(){
        SessionLocaleResolver localeResolver = new SessionLocaleResolver();
        localeResolver.setDefaultLocale(Locale.US);
        return  localeResolver;
    }


    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor(){
        LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
        lci.setParamName("lang");
        return lci;
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(localeChangeInterceptor());
    }

    @Override
    public Validator getValidator() {
        LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
        validator.setValidationMessageSource(messageSource);
        return validator;
    }

}

enter image description here enter image description here

почему не отображается приветственное сообщение?

1 Ответ

0 голосов
/ 26 мая 2018

Из вашей структуры кода выглядит, как будто вы перемещаете messages в подкаталог: /messages/messages_en.properties, поэтому значение по умолчанию messageSource этого не видит.

Вам необходимо переопределить значение по умолчанию messageSource:

@Bean
@Primary // Must use this to override message source
public static MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasenames("classpath:messages/messages");
    messageSource.setDefaultEncoding(StandardCharsets.UTF_8.name());
    messageSource.setFallbackToSystemLocale(true);
    return messageSource;
 }

Поместите это в ваш MvcConfig класс

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