Макет листа тимьяна с текстовым режимом - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь настроить обработку HTML и текстовых шаблонов с помощью Thymeleaf и диалекта макета:

@Configuration
public class ThymeleafConfiguration  {

@Bean
public TemplateEngine emailTemplateEngine() {
    final SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.addTemplateResolver(textTemplateResolver());
    templateEngine.addTemplateResolver(htmlTemplateResolver());

    LayoutDialect dialect = new LayoutDialect();
    templateEngine.addDialect(dialect);

    return templateEngine;
}

private ITemplateResolver textTemplateResolver() {
    final ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
    templateResolver.setOrder(Integer.valueOf(1));
    templateResolver.setResolvablePatterns(Collections.singleton("text/*"));
    templateResolver.setPrefix("static/common/templates/email/");
    templateResolver.setSuffix(".txt");
    templateResolver.setTemplateMode(TemplateMode.TEXT);
    templateResolver.setCharacterEncoding("UTF-8");
    templateResolver.setCacheable(true);
    return templateResolver;
}

private ITemplateResolver htmlTemplateResolver() {
    ...
  }
}

HTML-шаблоны прекрасно работают с иерархической структурой, но не с текстовыми:

main.txt:

Title    

[#th:block layout:fragment="content"]
content
[/th:block]

Footer

content.txt:

[#th:block layout:decorate="~{text/main}"]
 [#th:block layout:fragment="content"]
   Here is the URL for password change:
   Some url...
 [/th:block]
[/th:block]

Результатом является только часть содержимого без частей заголовка и нижнего колонтитула:

Here is the URL for password change:
Some url...

Этот диалект должен работать в текстовом режиме в любом случае?

...