Добавление настраиваемого резольвера шаблонов Thymeleaf в Spring Boot

По умолчанию приложение Spring Boot Application ищет шаблоны тимелеафа в разделе classpath: // templates.

Как добавить еще один преобразователь? Например, нам нужно искать шаблоны из локального каталога, например "c: \ MyTemplates", используя FileTemplateResolver?


person Sathish Kumar Thiyagarajan    schedule 06.08.2014    source источник
comment
Я не знал, что загрузка Spring ищет шаблоны тимелеафа только в папке шаблонов. У меня был мой в статической папке, и он не разрешался. +1   -  person CuriousCoder    schedule 28.11.2016


Ответы (2)


Вы можете добавить дополнительные преобразователи шаблонов в TemplateEngine либо вызвав setTemplateResolvers или вызвав метод addTemplateResolver с вашим FileTemplateResolver.

@Configuration
public class ThymeleafExtension {

    @Autowired
    private SpringTemplateEngine templateEngine;

    @PostConstruct
    public void extension() {
        FileTemplateResolver resolver = new FileTemplateResolver();
        resolver.setPrefix("D:\\templates\\");
        resolver.setSuffix(".html");
        resolver.setTemplateMode("HTML5");
        resolver.setOrder(templateEngine.getTemplateResolvers().size());
        resolver.setCacheable(false);
        templateEngine.addTemplateResolver(resolver);
    }
}
person m4rtin    schedule 06.08.2014
comment
Реализация репозитория шаблонов, похоже, не соблюдает свойство Order: в строке 203 нет сортировки по свойству order: grepcode.com/file/repo1.maven.org/maven2/org.thymeleaf/ - person DavidC; 26.02.2016
comment
stackoverflow.com/questions/39414055/ - эта статья мне помогла. - person Oleg Kuts; 18.10.2016

Небольшое улучшение предыдущего ответа:

@Configuration
public class ThymeleafConfig {

    public ThymeleafConfig(TemplateEngine templateEngine) {
        templateEngine.addTemplateResolver(new StringTemplateResolver());
    }
}
person Demel    schedule 01.07.2020