我想在控制器的webscript中使用Freemarker模板引擎处理一些表达。
我已经看到Alfresco提供了document.processTemplate("template content here")
API。
文档说:"针对当前Document节点从存储库执行模板"
我们说我没有任何特定文档可供使用,我只想执行模板引擎并检索输出。最好的方法是什么?
我是否应该使用某种临时或"代理"文献?最简单的方法是什么?
答案 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)
露天的主要目的是管理文件。你将在模板中没有任何文件元数据价值的情况下产生什么样的输出。这是背后不支持的主要原因,模板引擎设计在这样的一种方式,以便我们可以处理任何文件。