[英]How to access Java system properties from Freemarker templates?
我開始使用Freemarker來組裝簡單的HTML頁面,使用FMPP Maven插件 。 到現在為止還挺好。 但我需要做的一件事是在頁面上包含系統屬性的值(Maven提供的系統屬性之一)。 有沒有辦法從Freemarker模板訪問系統屬性? (如果沒有,我可能只需要破解插件以允許從Maven傳遞值)
cf https://community.jivesoftware.com/thread/14820
您可以像這樣訪問它:
${statics['java.lang.System'].getProperty("my.property")}
cf document here: http : //freemarker.sourceforge.net/docs/pgui_misc_beanwrapper.html
FMPP有一個名為data
的設置 ,它指定所有模板將看到的變量,因此您應該放置系統屬性。 要將值放入其中,除非可以將值指定為簡單文字,否則您需要一個所謂的數據加載器。 因此,在這種情況下,您需要一個數據加載器,它將系統屬性作為java.util.Properties
對象返回。 雖然沒有專門用於此的數據加載器,但您可以像這樣使用eval
數據加載器(在config.fmpp
):
data: {
...
sysProps: eval('System.getProperties()')
...
}
現在,在模板中,您可以訪問sysProps["os.name"]
等系統屬性。
或者,您可以編寫自定義FMPP數據加載器。 請參見http://fmpp.sourceforge.net/dataloader.html#sect19 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.