小编典典

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

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;
}

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

<p th:text="#{ticket.type.BUG}">BUG</p>

但是在呈现页面时,我得到以下信息:

<p>??ticket.type.BUG_de_DE??</p>

我想念什么?我是否需要配置任何其他bean?

PS:

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


阅读 528

收藏
2020-05-30

共1个答案

小编典典

由于我使用的MessageSource是Spring
Boot,因此配置了MessageSourceAutoConfiguration。这些设置可以在application.properties文件中轻松更改。就我而言,我必须在此文件中添加以下内容:

spring.messages.basename=i18n/messages
2020-05-30