如何在Thymeleaf和Spring Boot中显示消息?

ste*_*oss 18 spring spring-mvc thymeleaf spring-boot

我创建了一个使用Thymeleaf作为模板引擎的Spring Boot Web应用程序.我配置了MessageSource在子文件夹中查找消息:

@Bean
public MessageSource messageSource() {
    final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();

    messageSource.setBasename("i18n/messages");
    messageSource.setFallbackToSystemLocale(false);
    messageSource.setCacheSeconds(0);

    return messageSource;
}
Run Code Online (Sandbox Code Playgroud)

在这个文件夹中,我创建了messages_de.properties包含内容的文件ticket.type.BUG=Fehler.在我的模板中,我尝试显示如下文本:

<p th:text="#{ticket.type.BUG}">BUG</p>
Run Code Online (Sandbox Code Playgroud)

但是当呈现页面时,我得到以下内容:

<p>??ticket.type.BUG_de_DE??</p>
Run Code Online (Sandbox Code Playgroud)

我错过了什么?我是否必须配置任何其他bean?

PS:

在"服务器端"我可以使用获取消息MessageSource#getMessage("ticket.type.BUG", null, Locale.GERMANY).

ste*_*oss 29

因为我使用的MessageSource是Spring Boot,所以配置了一个MessageSourceAutoConfiguration.可以在application.properties文件中轻松更改这些设置.在我的情况下,我不得不将以下内容添加到此文件中:

spring.messages.basename=i18n/messages
Run Code Online (Sandbox Code Playgroud)

  • 我有同样的问题,并有这种配置,但这对我不起作用.. (2认同)