Freemarker: interpolação dinâmica de sub variáveis

Eu estou tentando criar uma macro FreeMarker que pode retornar a interpolação de uma concatenação de uma seqüência de caracteres e a variável de entrada:

<#macro findValue var>
   <#if (.vars["foo." + var]) ??> 
     .vars["foo." + var]
   <#else>
     ${.vars["bar." + var]}
   </#if>
</#macro>

Infelizmente isso não funciona. Primeiramente,${.vars["bar." + var]} dá umundefined erro. Em segundo lugar, oif condição sempre retornafalse mesmo quando eu posso ver que a variável sub existe. Parece que o.vars variável só pode procurar variáveis ​​raiz, mas não sub variáveis ​​comofoo.test.

questionAnswers(1)

yourAnswerToTheQuestion