【发布时间】:2020-06-22 12:36:01
【问题描述】:
使用速度模板语言(VTL),我想得到一个数组的最大值。我通过 Apache Velocity 的文档查找了很长时间,但找不到执行此操作的方法。
这是我的示例数组:
#set($array = [2,4,12,3,1,4,34,8])
$sorter.sort($array)
在这个例子中,我想得到34
【问题讨论】:
标签: arrays velocity vtl apache-velocity
使用速度模板语言(VTL),我想得到一个数组的最大值。我通过 Apache Velocity 的文档查找了很长时间,但找不到执行此操作的方法。
这是我的示例数组:
#set($array = [2,4,12,3,1,4,34,8])
$sorter.sort($array)
在这个例子中,我想得到34
【问题讨论】:
标签: arrays velocity vtl apache-velocity
如果只需要最大值,那么对数组进行排序有点过分。
如果您可以访问 Velocity 上下文,最好的选择是让 Java 工具为您完成。
如果您无法访问上下文,或者只是想要一个快速而肮脏的解决方案,您可以执行以下操作:
#set($max = -10000)
#foreach($val in $array)
#set($max = $math.max($max,$val))
#end
这需要org.apache.velocity.tools.generic.MathTool 出现在上下文中。如果不是这样,您仍然可以简单地执行以下操作:
#set($max = -10000)
#foreach($val in $array)
#if($val > $max)
#set($max = $math.max($max,$val))
#end
#end
【讨论】: