2.2 创建和配置模板引擎

我们的过滤器里的process(…)方法包含了如下这行:

  1. ITemplateEngine templateEngine = this.application.getTemplateEngine();

这意味着GTVGApplication类管理着创建和配置Thymeleaf 应用里最重要的对象之一:TemplateEngine实例(ITemplateEngine接口的实现)。

我们的org.thymeleaf.TemplateEngine对象会像这样被初始化:

  1. public class GTVGApplication {
  2. ...
  3. private final TemplateEngine templateEngine;
  4. ...
  5. public GTVGApplication(final ServletContext servletContext) {
  6. super();
  7. ServletContextTemplateResolver templateResolver =
  8. new ServletContextTemplateResolver(servletContext);
  9. // HTML is the default mode, but we set it anyway for better understanding of code
  10. templateResolver.setTemplateMode(TemplateMode.HTML);
  11. // This will convert "home" to "/WEB-INF/templates/home.html"
  12. templateResolver.setPrefix("/WEB-INF/templates/");
  13. templateResolver.setSuffix(".html");
  14. // Template cache TTL=1h. If not set, entries would be cached until expelled by LRU
  15. templateResolver.setCacheTTLMs(Long.valueOf(3600000L));
  16. // Cache is set to true by default. Set to false if you want templates to
  17. // be automatically updated when modified.
  18. templateResolver.setCacheable(true);
  19. this.templateEngine = new TemplateEngine();
  20. this.templateEngine.setTemplateResolver(templateResolver);
  21. ...
  22. }
  23. }

有许多配置TemplateEngine对象的方法,但是目前这几行代码将会教会我们足够多的需要的步骤。