1

使用速度模板语言(VTL),我想得到一个数组的最大值。我通过 Apache Velocity 的文档查看了很长时间,但找不到执行此操作的方法。

这是我的示例数组:

#set($array = [2,4,12,3,1,4,34,8])
$sorter.sort($array)

在这个例子中,我想得到34

4

1 回答 1

2

如果您只需要最大值,则对数组进行排序有点矫枉过正。

如果您可以访问 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
于 2020-03-11T07:22:09.307 回答