Alfresco:如何在没有文档的情况下使用ScriptNode processTemplate API?

时间:2015-05-25 19:51:21

标签: alfresco

我想在控制器的webscript中使用Freemarker模板引擎处理一些表达。

我已经看到Alfresco提供了document.processTemplate("template content here") API。

文档说:"针对当前Document节点从存储库执行模板"

我们说我没有任何特定文档可供使用,我只想执行模板引擎并检索输出。最好的方法是什么?

我是否应该使用某种临时或"代理"文献?最简单的方法是什么?

3 个答案:

答案 0 :(得分:2)

不太了解你在这之后的情况,但我认为这是可能的(不知道为什么有人愿意这样做。)

你编写自己的类来扩展BaseTemplateProcessorExtension,在那个类中你可以编写一个执行你想要的东西的方法。

public class MyTemplateProcessorExtension extends BaseTemplateProcessorExtension {

  public String myMethod(){
    return "Hello World";
  }
}

在spring config中以下列方式声明它。

<bean id="templateHelper" parent="baseTemplateImplementation" class="my.alfresco.repo.template.TemplateHelper">
  <property name="extensionName" value="templateHelper" />
 </bean>

然后你可以通过以下方式从你的freemarker中调用它:

${templateHelper.myMethod()}

freemarker模板调用&#34; myMethod&#34;应该是存储库中的一个节点(也应该可以将它放在类路径中,但是我从来没有取得任何成功),因为processTemplate需要一个nodeRef来模板本身。

好的,请注意。我不建议任何人使用这种方法:)

答案 1 :(得分:1)

我认为不可以不使用文件。因此,请使用数据字典之类的文件夹,或创建一个没有您始终使用的内容的虚拟文档。

答案 2 :(得分:0)

露天的主要目的是管理文件。你将在模板中没有任何文件元数据价值的情况下产生什么样的输出。这是背后不支持的主要原因,模板引擎设计在这样的一种方式,以便我们可以处理任何文件。