web-dev-qa-db-ja.com

速度テンプレートで配列/コレクションのサイズにアクセス/取得する方法は?

Java/Spring 3アプリでメールテンプレートに速度を使用しています。
テンプレート内からモデルに追加されたArrayListのサイズを取得するにはどうすればよいですか。

34
Danny

Velocityを使用したことはありませんが、その VTLリファレンスガイド では、メソッドの呼び出しは$customer.getAddress()または${purchase.getTotal()}を使用して行われます。したがって、${myArrayList.size()}を使用します。

39
JB Nizet

コレクションには他のオブジェクトと同様にアクセスできるため、$collection.size()には値が含まれます。

配列は 特別なケースListのように動作するため、_$array.length_は機能しませんが、$array.size()は機能します。

Velocityの古いバージョン(1.6より前)では、 ListTool および ArrayTool を使用していました。

17
dimo414

開発者ガイド からの引用:

Object []通常のオブジェクト配列。ここで言う必要はあまりありません。 Velocityは、Iteratorインターフェースを提供するクラスで配列を内部的にラップしますが、プログラマーやテンプレート作成者としては関係ありません。さらに興味深いのは、テンプレートの作成者がVelocityで配列を固定長リスト(Velocity 1.6以降)として扱うことができるようになったことです。つまり、違いについては気にせずに、配列と標準のJava.util.Listインスタンスの両方でsize()、isEmpty()、get(int)などのメソッドを呼び出すことができます。

したがって、size()を使用すると、Java.util.ListおよびJava配列。

0
cristi