使用带有Freemarker帮助的XPages

时间:2013-03-04 13:00:41

标签: xpages velocity freemarker

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

以下是Freemarker的模板路径代码:

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

2 个答案:

答案 0 :(得分:1)

由于您将模板与类一起存储(如果我理解的话),您是否不能使用cfg.setClassForTemplateLoading(SomeClassFromThere.class, "/com/example/yourapplication/templates")

答案 1 :(得分:0)

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

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