簡體   English   中英

如何從Freemarker模板訪問Java系統屬性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM