У меня есть переменная Apache FreeMarker "map", и мне нужен доступ к элементу на карте. Проблема в том, что «ключ» элемента, который я ищу, хранится в самой переменной. Рассмотрим следующую карту:
<#assign mymap = {"key1" : "value1", "key2" : "value2"}>
Теперь я могу легко получить доступ к карте, например:
${mymap.key1}
И это отлично работает. Моя проблема в том, что «ключ1» содержится в такой переменной:
<#assign keyname = "key1">
<-- Now I want to access the map via whatever key is in the variable keyname -->
${mymap.${keyname}}
К сожалению, приведенный выше синтаксис недопустим. Я думаю, что FreeMarker не достаточно умен, чтобы выполнять вложенные интерполяции. Итак, как мне это сделать? Беглый анализ документации на самом деле не говорит об этом сценарии. Похоже, это было бы довольно распространенным явлением.