Question

J'ai commencé à utiliser Freemarker pour assembler des pages HTML simples, en utilisant Plugin FMPP MAVEN. Jusqu'ici tout va bien. Mais une chose que je dois faire est d'inclure la valeur d'une propriété système (l'une des propriétés du système que Maven fournit) sur une page. Existe-t-il un moyen d'accéder aux propriétés du système à partir de modèles Freemarker? (sinon, je devrai peut-être pirater le plugin pour autoriser les valeurs de passage de maven)

Était-ce utile?

La solution

FMPP a un Réglage appelé data Cela spécifie les variables que tous les modèles verront, c'est donc là que vous devez mettre les propriétés du système. Pour y mettre des valeurs, sauf si la valeur peut être spécifiée comme un simple littéral, vous avez besoin d'un soi-disant chargeur de données. Donc, dans ce cas, vous avez besoin d'un chargeur de données qui renvoie les propriétés du système en tant que java.util.Properties objet. Bien qu'il n'y ait pas de chargeur de données spécifiquement pour cela, vous pouvez utiliser le eval data-chargedeur comme celui-ci (dans votre config.fmpp):

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

Maintenant, dans vos modèles, vous pouvez accéder aux propriétés du système comme sysProps["os.name"].

Alternativement, vous pouvez écrire un chargeur de données FMPP personnalisé. Voir http://fmp.sourceforge.net/dataloader.html#sect19.

Autres conseils

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

Vous pouvez y accéder comme ceci:

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

Documentation CF ici:http://freemarker.sourceforge.net/docs/pgui_misc_beanwrapper.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top