0

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

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

我已经使用拆分功能根据分隔符'-'进行拆分。

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

输出变量具有健康规则的所有部分。

现在我想从数组的第二个索引打印,即从“ef”到数组的末尾。为了得到数组的大小,我使用了#set ($outputsize=$output.size()),即array.size()。

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

我使用的逻辑如下。

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

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

4

1 回答 1

0

在 VTL 中,数组和列表是等价的。在他们两个上,您都可以使用.get(i)[i]访问第 i 个元素,或调用该.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
于 2018-11-16T00:51:31.233 回答