如何在速度模板中访问/获取数组/集合的大小?

时间:2011-10-12 22:16:50

标签: java spring templates velocity

我在java / spring 3应用程序中使用velocity作为电子邮件模板。
如何从模板中获取添加到模型中的ArrayList的大小。

3 个答案:

答案 0 :(得分:39)

我从未使用过Velocity,但VTL reference guide表示调用方法是使用$customer.getAddress()${purchase.getTotal()}完成的。所以我会使用${myArrayList.size()}

答案 1 :(得分:17)

可以像访问任何其他对象一样访问集合,因此$collection.size()将包含值。

数组special cased的行为与List类似,但$array.length不起作用,$array.size()有效。

在早期版本的Velocity(1.6之前版本)中,您使用ListToolArrayTool

答案 2 :(得分:0)

引自the developer guide

  

Object []常规对象数组,这里不需要说太多。 Velocity将在内部将您的数组包装在一个提供Iterator接口的类中,但这不应该与您作为程序员或模板作者有关。更感兴趣的是,Velocity现在允许模板作者将数组视为固定长度列表(从Velocity 1.6开始)。这意味着他们可以在数组和标准java.util.List实例上调用size(),isEmpty()和get(int)等方法,而不必考虑差异。

所以使用size()java.util.List和java数组上同样有效。