【问题标题】:Display messages with thymeleaf in Spring Boot在 Spring Boot 中使用 thymeleaf 显示消息
【发布时间】:2021-06-03 03:11:57
【问题描述】:

我正在尝试从 thymeleaf html 模板中的属性文件添加外部化消息。我有一个位于i18n/messages 的文件messages_es.properties,里面有这个:

estimado=Estimado:

在我的 html 模板中,我有以下内容

<div th:text="#{estimado}">Estimado placeholder</div>

然后,我得到的 html 如下:

<div>??estimado_es??</div>

有人可以帮助我吗?


这是我添加的配置以使其工作:

    @Bean
    @Qualifier("custom")
    public ITemplateResolver thymeleafTemplateResolver(){
        ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
        templateResolver.setPrefix("templates/");
        templateResolver.setSuffix(".html");
        templateResolver.setTemplateMode("HTML");
        templateResolver.setCharacterEncoding("UTF-8");
        return templateResolver;
    }

    @Bean
    public SpringTemplateEngine thymeleafTemplateEngine(@Qualifier("custom") ITemplateResolver templateResolver) {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver);
        templateEngine.setTemplateEngineMessageSource(messageSource());
        return templateEngine;
    }

    @Bean
    @Description("Spring Message Resolver")
    public ResourceBundleMessageSource messageSource() {
        ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
        messageSource.setBasename("i18n/messages");
        return messageSource;
    }

在我的 application.yml 文件中:

spring.messages.basename: i18n/messages

【问题讨论】:

    标签: spring-boot thymeleaf


    【解决方案1】:

    首先,您应该将classpath: 作为前缀添加到您的基本名称。 其次,如果您将 baseName 设置为i18n/messages,应用程序将查找i18n/messages_es.properties

    如果我理解正确你的文件路径是i18n/messages/messages_es.properties 所以你需要将 baseName 设置为:classpath:i18n/messages/messages

    【讨论】:

      猜你喜欢
      • 2015-06-14
      • 2016-08-13
      • 1970-01-01
      • 1970-01-01
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      相关资源
      最近更新 更多