1

我想在我的 XPages 应用程序中使用 Freemarker 模板引擎,但无法让它在 XPages 环境中工作。我遇到的问题与我不知道如何正确设置的模板路径有关。Freemarker 只是假设模板位于文件系统的某个位置。我将模板文件放入与相关 java 类存在的目录相同的目录中。这种文件的路径是这样的xspnsf://server:0/xpages_tests.nsf/WEB-INF/classes/tcl/,对我不起作用。有没有人有这方面的经验?我只需要 File() 构造函数接受的 nsf 目录路径。xspnsf://....对于 java File 对象,这个虚拟是无法理解的。

这是 Freemarker 的模板路径代码:

Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("??????"));
Template temp = cfg.getTemplate("tmp.ftl");
4

2 回答 2

1

由于您将模板与类一起存储(如果我理解得很好),您不能使用cfg.setClassForTemplateLoading(SomeClassFromThere.class, "/com/example/yourapplication/templates")吗?

于 2013-03-04T21:29:27.303 回答
0

尝试改用 Velocity ( http://velocity.apache.org/ )。它允许您创建自定义资源加载器,可以轻松地从任何地方加载模板(例如从 notes db 中的文档)。

我已经看到它在不同的 xpage 项目中多次使用并且效果很好。

于 2013-03-04T15:44:24.643 回答