Freemarker: Dynamiczna interpolacja zmiennych podrzędnych
Próbuję utworzyć makro FreeMarker, które może zwrócić interpolację konkatenacji łańcucha i zmiennej wejściowej:
<#macro findValue var>
<#if (.vars["foo." + var]) ??>
.vars["foo." + var]
<#else>
${.vars["bar." + var]}
</#if>
</#macro>
Niestety to nie działa. Po pierwsze,${.vars["bar." + var]}
dajeundefined
błąd. Po drugieif
warunek zawsze powracafalse
nawet gdy widzę, że zmienna podrzędna istnieje. Wygląda na to.vars
zmienna może wyszukiwać tylko zmienne root, ale nie takie jak zmienne podrzędnefoo.test
.