Freemarker: Dynamische Interpolation von Subvariablen

Ich versuche, ein FreeMarker-Makro zu erstellen, das die Interpolation einer Verkettung eines Strings und der Eingabevariablen zurückgeben kann:

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

Leider klappt es nicht. Zuerst,${.vars["bar." + var]} gibt eineundefined Error. Zweitens dieif Zustand kehrt immer zurückfalse Auch wenn ich sehe, dass die Subvariable existiert. Es scheint wie das.vars Variable kann nur nach Root-Variablen suchen, nicht aber nach Sub-Variablen wiefoo.test.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage