2011-06-18 15 views
3

Freemarkerを使用して、単純なHTMLページを組み立てるのに、FMPP Maven pluginを使い始めました。ここまでは順調ですね。 しかし、私がする必要があることは、ページにシステムプロパティ(Mavenが提供するシステムプロパティの1つ)の値を含めることです。 Freemarkerテンプレートからシステムのプロパティにアクセスする方法はありますか? (ない場合は、私はMavenのから値を渡しできるようにするプラグインをハックする必要があります)FreemarkerテンプレートからJavaシステムのプロパティにアクセスする方法は?

答えて

2

FMPPには、すべてのテンプレートに表示される変数を指定するsetting called dataがあります。そのため、システムプロパティを配置する場所が異なります。値を単純なリテラルとして指定できない限り、そこに値を入れるには、いわゆるデータローダーが必要です。この場合、システムプロパティをjava.util.Propertiesオブジェクトとして返すデータローダーが必要です。そのために特別に何のデータ・ローダーをありませんが、あなたは(あなたのconfig.fmppに)このようなevalデータ・ローダーを使用することができます。

data: { 
    ... 
    sysProps: eval('System.getProperties()') 
    ... 
} 

は、今すぐあなたのテンプレートで、あなたは sysProps["os.name"]のように、システムのプロパティにアクセスすることができます。

また、カスタムFMPPデータローダーを作成することもできます。 http://fmpp.sourceforge.net/dataloader.html#sect19を参照してください。

+0

はい、これは魅力的です。 – StaxMan

3

CF https://community.jivesoftware.com/thread/14820

あなたはこのようにアクセスすることができます:ここ

${statics['java.lang.System'].getProperty("my.property")} 

CFのドキュメント: http://freemarker.sourceforge.net/docs/pgui_misc_beanwrapper.html

+0

-1コピーしたコメントは、少なくとも貼り付ける前に読んでください。 – Omnaest

+0

@ user625146 ooops、ありがとう –

+0

これは+1だと思うが、これがうまくいっても – Omnaest

関連する問題