Может быть, потому что сегодня здесь, в Великобритании, пятничный полдень, и мой мозг решил замедлиться в нетерпеливом ожидании выходных, но я нашел себе кроличью нору с Apache Velocity и надеюсь, что один из вас милый люди в интернете смогут снова запустить мой мозг.
Мой сумасшедший случай использования следующий:
#foreach( $item in $array )
#set($myVariable = "#customDirective('a.key.with.the.${foreach.index}')")
#end
У меня есть цикл for для итерации по списку, затем для каждого элемента в этом списке я вызываю пользовательскую директиву, которая принимает параметр, который является предварительно определенным ключом, частью которого является индекс цикла. Я установил результат пользовательской директивы в переменную, чтобы ее можно было использовать в дальнейшем.
Теперь я понимаю, что все, что находится внутри одинарных кавычек ('), рассматривается как литерал, а все, что находится внутри двойных кавычек ("), разрешается. Поэтому я вижу, что когда я выхожу из входного параметра в пользовательская директива, $ {foreach.index} не была преобразована в значение, а вместо этого обрабатывается как строковый литерал.
Как правильно построить мой входной параметр для директивы в этом сценарии?
Я использую Velocity версии 2.0, но могу обновить или понизить, если это необходимо.