我开始使用Freemarker组装简单的HTML页面,使用FMPP Maven plugin.到目前为止一切顺利.
但我需要做的一件事是在页面上包含系统属性的值(Maven提供的系统属性之一).有没有办法从Freemarker模板访问系统属性?
(如果没有,我可能只需要破解插件以允许从Maven传递值)
解决方法:
FMPP有一个setting called data
,它指定所有模板将看到的变量,因此您应该放置系统属性.要将值放入其中,除非可以将值指定为简单文字,否则您需要一个所谓的数据加载器.因此,在这种情况下,您需要一个数据加载器,它将系统属性作为java.util.Properties对象返回.虽然没有专门用于此的数据加载器,但您可以像这样使用eval数据加载器(在config.fmpp中):
data: {
...
sysProps: eval('System.getProperties()')
...
}
现在,在模板中,您可以访问sysProps [“os.name”]等系统属性.
或者,您可以编写自定义FMPP数据加载器.见http://fmpp.sourceforge.net/dataloader.html#sect19.