我在Java中使用Freemarker模板文件时遇到了文件未找到异常。我已经搜索了所有类似于Random template not found with Freemarker和Freemarker template not found的链接,但是没有得到帮助。
我正在使用ftl文件设计电子邮件,以下是我的代码来包含该模板:
Configuration cfg = new Configuration();
cfg.setClassForTemplateLoading(GenerateEmail.class, "");
Template template = cfg.getTemplate("email.ftl");
我的email.ftl
文件位于src/main/java文件夹
中
有人能帮我吗?
src/main/java
文件夹意味着你正在使用maven,你的文件应该在src/main/resources
中。你需要的信息在重复链接中。 - user177800setClassForTemplateLoading
的第二个参数使用了""
而不是"/"
。""
是相对路径,因此FreeMarker会在GenerateEmail
类的包中查找模板。请注意,这在JavaDoc中有记录。(由于该问题被标记为重复,我无法将其作为答案发送。) - ddekanysrc/main/java
的应用程序?那不是他们所暗示的,他们使用的方法调用和路径暗示了类路径的根目录,如果他们想要查看文件系统,他们应该使用正确的在文件系统上查找的方法。如果他们的意图与他们所说的不同,他们需要更加详细地澄清问题,如果意图改变,问题将会重新开放。这就是系统设计的方式。 - user177800