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.

questionAnswers(1)

yourAnswerToTheQuestion