速度模板:从数组的第n个位置显示

时间:2018-11-15 16:48:09

标签: arrays get velocity appdynamics

要自定义应用程序动态电子邮件模板,我们必须使用速度模板1.7

我有一个名为ab-cd-ef-gh的健康规则。前两部分是常量,后两部分是微服务的名称。我想在“ ef”之后显示该部分。请注意,健康规则的长度不是固定的,这意味着从“ ef”开始的部分可以分为2部分,3部分或5部分,具体取决于名称。

我已使用split函数根据定界符'-'进行拆分。

设置($ output = $ originalmessage.split('-'))

输出变量具有运行状况规则的所有部分。

现在我要从数组的第二个索引开始打印,即从'ef'到数组的结尾。为了获得数组的大小,我使用了#set($ outputsize = $ output.size()),即array.size()。

如何打印从'ef'到数组末尾的部分。

我使用的逻辑如下。

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

但是,我没有得到输出。请帮助我打印服务名称。

1 个答案:

答案 0 :(得分:0)

在VTL中,数组和列表是等效的。在这两种方法上,您都可以使用.get(i)[i]访问第ith个元素,或调用.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