如何在 Velocity 模板语言 (VTL) 中获取数组中的最大值
How to get the maximum value in an array in Velocity Template Language (VTL)
我想使用速度模板语言 (VTL) 获取数组的最大值。我在 Apache Velocity 的文档中查找了很长时间,但找不到执行此操作的方法。
这是我的示例数组:
#set($array = [2,4,12,3,1,4,34,8])
$sorter.sort($array)
在这个例子中,我想得到 34
如果您只需要最大值,则对数组进行排序有点矫枉过正。
如果您有权访问 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
我想使用速度模板语言 (VTL) 获取数组的最大值。我在 Apache Velocity 的文档中查找了很长时间,但找不到执行此操作的方法。
这是我的示例数组:
#set($array = [2,4,12,3,1,4,34,8])
$sorter.sort($array)
在这个例子中,我想得到 34
如果您只需要最大值,则对数组进行排序有点矫枉过正。
如果您有权访问 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