Как получить доступ к системным свойствам Java из шаблонов Freemarker? - PullRequest
3 голосов
/ 18 июня 2011

Я начал использовать Freemarker для сборки простых HTML-страниц, используя Плагин FMPP Maven .Все идет нормально.Но мне нужно включить одно значение системного свойства (одно из системных свойств, предоставляемых Maven) на странице.Есть ли способ получить доступ к системным свойствам из шаблонов Freemarker?(если нет, мне может понадобиться взломать плагин, чтобы разрешить передачу значений из Maven)

Ответы [ 2 ]

3 голосов
/ 18 июня 2011

ср https://community.jivesoftware.com/thread/14820

Вы можете получить к нему доступ так:

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

см. Документацию здесь: http://freemarker.sourceforge.net/docs/pgui_misc_beanwrapper.html

2 голосов
/ 19 июня 2011

FMPP имеет параметр , называемый data, который определяет переменные, которые будут видеть все шаблоны, поэтому вы должны поместить системные свойства. Чтобы поместить туда значения, если значение не может быть указано как простой литерал, вам нужен так называемый загрузчик данных. Так что в этом случае вам нужен загрузчик данных, который возвращает системные свойства в виде объекта java.util.Properties. Хотя для этого нет загрузчика данных, вы можете использовать загрузчик данных eval следующим образом (в вашем config.fmpp):

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

Теперь в ваших шаблонах вы можете получить доступ к системным свойствам, таким как sysProps["os.name"].

В качестве альтернативы, вы можете написать собственный загрузчик данных FMPP. См http://fmpp.sourceforge.net/dataloader.html#sect19.

...