我有模块/ email.ftl
/WEB/WEB/templates/email/(我创建的一个子文件夹)。在我的控制器代码中,我有我的EmailInfo声明,我希望指定到email.ftl的路径。
查看本教程,我看到EmailInfo声明如下:
EmailInfo emailInfo = new EmailInfo(
"john.doe@company.com,jane.roe@company.com",
newsItem.getCaption(),
null,
"com/company/demo/templates/news_item.txt",
Collections.singletonMap("newsItem", newsItem)
);
我注意到通向news_item.txt的相对路径从com/
开始,这使我相信路径的根从控制器所在模块的"src“文件夹开始(我的控制器位于app门户中,所以在我的例子中是portal/src
)。由于我的模板在web/
下而不是src/
下,所以我指定了路径如下:
EmailInfo emailInfo = new EmailInfo("email@email.com", "Email Template", null, "../web/WEB-INF/templates/email/email.ftl", null, null);[/pre]
但是,它没有工作,因为引发了一个错误:
java.lang.IllegalArgumentException:无法通过路径找到模板:../WEB/WEB/ template /email/email.ftl
因此,我的问题是,如何指定这个文件路径,以进入一个不同的子文件夹,特别是“模块/门户/web”?
谢谢你,交友
==X-从古巴发帖-平台forum==
发布于 2017-07-28 13:48:09
感谢Yuriy Artamonov在古巴的回答:
不幸的是,您不能将电子邮件模板存储在门户/ web模块中,因为它们是在中间件上处理的。我建议您将它们放入核心模块src文件夹中。实际上,"/“指的是类路径根,而不是文件夹。 模板由Emailer使用参考资料接口加载,该接口使用以下规则加载资源:https://doc.cuba-platform.com/manual-6.5/resources.html
我将email.ftl
置于modules/core/src/com/example/test/email/email.ftl
下,并指定了/com/example/test/email/email.ftl
的路径,它起了作用。
https://stackoverflow.com/questions/45363703
复制相似问题