【发布时间】:2015-09-11 11:58:42
【问题描述】:
我对使用 Freemarker 模板有两个不同的要求。一种是打印网页的某些部分,另一种是生成自定义的 HTML 文件。我已将所有 FTL 文件放在路径 WEB-INF/ftl/ 下。Web 应用程序从上述位置提取正确的 FTL 文件并打印网页。当我不得不生成 HTML 文件时,Freemarker 无法找到相应的 FTL 文件。
我试图将那个特定的 FTL 文件保存在 resources/ftl/ 下,但它仍然无法获取该文件。我在 src 下创建了一个包并放置了 FTL。 Maven 不采用该包,因为它没有 java 文件。
Configuration cfg = new Configuration();
cfg.setClassForTemplateLoading(this.getClass(), "");
Template template = cfg.getTemplate("helloworld.ftl");
我可以考虑用两种不同的方式解决这个问题。一种方法是将文件保存在项目中或类路径中,以便被 Freemarker 拾取。另一种方法是将其作为 InputStream 获取并将其传递给 Freemarker。但我没有看到任何方法可以将文件作为 InputStream 或 File 接受。
ServletActionContext.getServletContext().getResourceAsStream("WEB-INF/ftl/helloworld.ftl");
您能告诉我如何解决这个问题吗?
【问题讨论】:
标签: java freemarker