Thymeleaf установить ресурс сообщения без WEB - PullRequest
0 голосов
/ 20 марта 2019

В этом сценарии нет веб-конфигурации, Spring MVC, Spring Boot и т. Д. Просто приложение, я хотел бы использовать Thymeleaf для передачи статического html-ресурса и получения контента в String.

Однако, как в этом случае установить международное сообщение для тимелина?Так что я мог бы в статическом html-файле использовать как

<h1 th:text="#{messageA}">AAAAA</h1>

1 Ответ

1 голос
/ 20 марта 2019

Вам просто нужно определить источник сообщения. Например, в моей весенней конфигурации у меня есть основной метод:

@Configuration
@ComponentScan(basePackages = {"spring.cli.config"})
public class Main {
    public static void main(String... args) throws Exception {
        ConfigurableApplicationContext spring = new SpringApplicationBuilder(Main.class)
                .web(NONE)
                .profiles("default")
                .run(args);

        TemplateEngine engine = (TemplateEngine) spring.getBean("engine");
        Context context = new Context();
        System.out.println(engine.process("template", context));
    }
}

и файл конфигурации (отсканировано в @ComponentScan(basePackages = {"spring.cli.config"})):

@Configuration
public class Thymeleaf {
    @Bean
    public MessageSource messageSource() throws Exception {
        ReloadableResourceBundleMessageSource res = new ReloadableResourceBundleMessageSource();
        res.setBasename("file:src/main/resources/messages");
        return res;
    }
}

У меня есть файл в моем проекте src/main/resources/messages.properties.

# messages.properties
messageA=Hello I am message A

А в html:

<h1 th:text="#{messageA}">AAAAA</h1>

разрешается до:

<div>Hello I am message A</div>
...