0

我正在尝试在使用Javascript API 的方法 proccessTemplate ( http://wiki.alfresco.com/wiki/4.0_JavaScript_API#Transformation_API )处理的 freemarker 模板中使用一个简单的<#include "anotherFile.ftl"/>针对特定节点。

它似乎不喜欢包含?!

错误信息如下

包装异常(带状态模板):04305890 无法执行脚本“classpath *:alfresco/extension/templates/webscripts/myPath/myWebscript.get.js”:04305889 处理模板时出错“读取包含的文件字符串时出错:// fooy/foo.ftl'。请联系您的系统管理员。

正在处理的模板和可能包含的模板将存储在 Alfresco 的存储库之外,但现在它在里面。webscripts 也将在存储库之外和 Java 类路径内。

我试图包含 ftl,即使它在同一个目录中,但这不起作用。我试图获得一个 node.nodeRef (成功),但实际的包含不起作用,尽管这意味着将 ftl 存储在存储库中,我们无论如何都不会这样做。

我确实尝试在实际的 webscripts freemarker 本身上包含 ftl,但当然 node.processTemplate 在传递给 webscript freemarker 模板之前发生在 javascript 控制器中

我什至尝试对包含的内容进行硬编码并将其传递到 args 关联数组中,但正如预期的那样,它不起作用。

进一步调查表明这是一个错误 https://issues.alfresco.com/jira/browse/ALFCOM-3364

如果有人克服了这个问题,欢迎提出任何其他建议。

谢谢

4

1 回答 1

1

如果它是一个网页脚本,那么我猜你的路径不正确。

例如:我有一个 webscript foo。它将出现在alfresco/extension/templates/webscripts/org/test/ 所以我将拥有 foo.get.desc.xml、foo.get.js 和 foo.get.html.ftl。

我在 alfresco/extension/templates/webscripts/org/common/common.ftl 中有一个通用的 freemarker 模板

然后我需要将<#include "/org/common/common.ftl" />foo.get.html.ftl freemarker 放入。

所以你需要设置路径alfresco/extension/templates/webscripts

于 2012-05-30T08:35:34.533 回答