【发布时间】:2013-03-18 14:51:46
【问题描述】:
在我的应用程序中,所有 freemarker 模板都在 /templates/ftl/ 中,因此在应用程序部署期间,我加载了一个类,我调用了一个扩展 FreemarkerManager 并具有方法的类
Configuration configuration = super.createConfiguration(servletContext);
configuration.setDirectoryForTemplateLoading(new File("/templates/ftl/"));
这样,当我需要加载一个模板文件时,我可以简单地这样做:
ServletContext servletContext = ServletActionContext.getServletContext();
Configuration configFreemarker = (Configuration) servletContext
.getAttribute("freemarker.Configuration");
Template template = configFreemarker.getTemplate("pathToMyTemplate");
仅在一种特定情况下,我需要获取一个来自完全不同路径(而不是 /templates/ftl/)的模板。
如何在这个特定时刻声明用于模板加载的第二个目录而不破坏所有调用旧路径的现有代码?我可以同时有 2 个不同的模板加载起点吗?
谢谢
【问题讨论】:
-
也许只是创建没有特定目录的单独(或临时)配置?
-
我看不到如何实例化 2 个配置,因为我的类需要扩展 FreemarkerManager 并且我需要扩展我已经第一次做的方法 createConfiguration。在里面我得到配置 conf = super.createConfiguration(servletContext);但我看不到如何获得相同 servletContext 的第二个配置
标签: java freemarker