Я определил два файла свойств внутри каталога ресурсов. они есть:- 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;
}
}
почему не отображается приветственное сообщение?
вы можете проверить изображение выше, которое я загрузил.
Проверить мой ответ




Судя по структуре кода, вы переместили свой 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 (поскольку я не создавал никаких каталогов, просто добавил файлы сообщений в каталог ресурсов). я хотел бы знать, как на самом деле работает этот компонент?
Путь к вашим файлам сообщений / resources / messages_en?