我开始使用 Freemarker 组装简单的 HTML 页面,使用FMPP Maven 插件。到现在为止还挺好。但我需要做的一件事是在页面上包含系统属性(Maven 提供的系统属性之一)的值。有没有办法从 Freemarker 模板访问系统属性?(如果没有,我可能只需要破解插件以允许从 Maven 传递值)
问问题
5051 次
2 回答
3
cf https://community.jivesoftware.com/thread/14820
您可以像这样访问它:
${statics['java.lang.System'].getProperty("my.property")}
参考这里的文档:http: //freemarker.sourceforge.net/docs/pgui_misc_beanwrapper.html
于 2011-06-18T07:39:39.333 回答
2
FMPP 有一个名为的设置data
,它指定所有模板将看到的变量,因此您应该放置系统属性。要将值放入其中,除非可以将值指定为简单的文字,否则您需要一个所谓的数据加载器。因此,在这种情况下,您需要一个将系统属性作为java.util.Properties
对象返回的数据加载器。虽然没有专门为此而设计的数据加载器,但您可以eval
像这样使用数据加载器(在您的 中config.fmpp
):
data: {
...
sysProps: eval('System.getProperties()')
...
}
现在在您的模板中,您可以访问系统属性,例如sysProps["os.name"]
.
或者,您可以编写自定义 FMPP 数据加载器。请参阅http://fmpp.sourceforge.net/dataloader.html#sect19。
于 2011-06-18T23:42:45.463 回答