Не может получить доступ к сообщениям локали

Я определил два файла свойств внутри каталога ресурсов. они есть:- 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;
    }

}

Не может получить доступ к сообщениям локалиНе может получить доступ к сообщениям локали

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

Путь к вашим файлам сообщений / resources / messages_en?

Mạnh Quyết Nguyễn 26.05.2018 10:27

вы можете проверить изображение выше, которое я загрузил.

sagar limbu 26.05.2018 17:13

Проверить мой ответ

Mạnh Quyết Nguyễn 26.05.2018 17:18
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Судя по структуре кода, вы переместили свой 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

ну, это действительно сработало после того, как я отредактировал classpath: messages / messages в classpath: messages (поскольку я не создавал никаких каталогов, просто добавил файлы сообщений в каталог ресурсов). я хотел бы знать, как на самом деле работает этот компонент?

sagar limbu 26.05.2018 17:26

Другие вопросы по теме