2011-10-12 14 views

Respuesta

34

Nunca he usado Velocity, pero es VTL reference guide y dice que llamar a un método se hace usando $customer.getAddress() o ${purchase.getTotal()}. Entonces usaría ${myArrayList.size()}.

+6

La referencia es una de las piezas más divertidas de código de ejemplo que he visto en mucho tiempo. Tuve que limpiar el café de mi pantalla ... – Namphibian

12

Se puede acceder a una colección como a cualquier otro objeto, por lo que $collection.size() contendrá un valor.

Las matrices son special cased a comportarse como List, por lo que a pesar de $array.length no funciona, $array.size() obras.

En las versiones anteriores de Velocity (pre 1.6) utilizaría ListTool y ArrayTool.

0

Presupuesto de the developer guide:

Object [] tabla de objeto regular, no hay mucho que decir aquí. Velocity envolverá internamente su matriz en una clase que proporcione una interfaz Iterator, pero eso no debería afectarlo como programador o autor de la plantilla. De más interés, es el hecho de que Velocity permitirá ahora a los autores de las plantillas tratar las matrices como listas de longitud fija (a partir de Velocity 1.6). Esto significa que pueden llamar a métodos como size(), isEmpty() y get (int) en ambas matrices y instancias estándar de java.util.List sin preocuparse por la diferencia.

Por lo tanto, usar size() funciona igual de bien en java.util.List y arreglos Java.

Cuestiones relacionadas