速度模板:从数组的第 n 个位置开始显示
Velocity Template : Display from nth position of an array
要自定义应用程序动态电子邮件模板,我们必须使用 velocity 模板 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)}
但是,我没有得到输出。请帮我打印服务名称。
在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
要自定义应用程序动态电子邮件模板,我们必须使用 velocity 模板 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)}
但是,我没有得到输出。请帮我打印服务名称。
在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