Шаблон скорости: отображение с n-й позиции массива - PullRequest
0 голосов
/ 15 ноября 2018

Для настройки шаблонов электронной почты в динамике приложения мы должны использовать шаблон скорости 1.7

У меня есть правило работоспособности с именем ab-cd-ef-gh.Первые две части являются постоянными, а последние две части - это название микросервиса.Я хочу отобразить часть после 'ef'.Обратите внимание, что длина правила работоспособности не является фиксированной, то есть часть, начинающаяся с 'ef', может состоять из 2 частей, 3 частей или 5 частей в зависимости от имени.

Я использовал функцию разделения для разделения на основена разделителе '-'.

set ($ output = $ originalmessage.split ('-'))

Выходная переменная содержит все части правила работоспособности.

Теперь я хочу напечатать из2-й индекс массива, т.е. от 'ef' до конца массива.Чтобы получить размер массива, я использовал #set ($ outputize = $ output.size ()), то есть array.size ().

Как будет печататься часть, начиная с 'ef' доконец массива.

Я использовал логику, описанную ниже.

#set ($start=5)
#foreach ($i in [$start..$outputsize])
${arrays.asList($output).get($i)}

Но я не получаю вывод.Пожалуйста, помогите мне напечатать название сервиса.

1 Ответ

0 голосов
/ 16 ноября 2018

В VTL массивы и списки эквивалентны. На обоих из них вы можете использовать .get(i) или [i] для доступа к элементу ih или вызвать метод .size().

Итак, я думаю, что

#set ($outputsize = $output.size() - 1)
#set ($start=5)
#foreach ($i in [$start..$outputsize])
  $output.get($i)
#end

достаточно, как и:

#set ($outputsize = $output.size() - 1)
#set ($start=5)
#foreach ($i in [$start..$outputsize])
  $output[$i]
#end
...