我正在使用下面有 Apache Sling 的内容存储库 (Adobe CQ5)。我想使用 FreeMarker 而不是 JSP 来呈现网页。
为此,我应该将 OSGi Freemarker 扩展上传到 Sling(可在 Sling 源代码的贡献部分中找到),还是应该上传 OSGi 版本的 Freemarker?两个 jar 都实现了接口 javax.script.ScriptEngineFactory 所以我不知道使用哪一个,或者同时上传两者。
我正在使用下面有 Apache Sling 的内容存储库 (Adobe CQ5)。我想使用 FreeMarker 而不是 JSP 来呈现网页。
为此,我应该将 OSGi Freemarker 扩展上传到 Sling(可在 Sling 源代码的贡献部分中找到),还是应该上传 OSGi 版本的 Freemarker?两个 jar 都实现了接口 javax.script.ScriptEngineFactory 所以我不知道使用哪一个,或者同时上传两者。
通过执行以下操作,我设法让 Freemarker 在 CQ5.3 上工作:
我通过在 CQ5 中创建包、导入代码并将股票 freemarker.jar 添加到包中来稍微不同,但这应该也可以工作,因为它基本上是相同的。
我遇到的问题是脚本引擎确实被列出但日志记录阻止它运行,这就是为什么你需要从引擎中删除日志和 slf4j。
我不知道Freemarker 的 OSGi 版本;我们专门为 Sling 创建了自己的 Freemarker 捆绑包。如果您成功使用了OSGi 版本的 Freemarker,请告诉我们 ;-)
测试很简单:只需通过 Web 控制台安装捆绑包并在 Web 控制台配置状态中检查支持的脚本引擎。如果您看到那里列出的 Freemarker 引擎,它应该可以工作。