2012-01-05 17 views
5

estoy usando Plantillas de Velocity Lengua y actualmente tienen:¿Cómo acceder a los elementos de la matriz después de usar string.split en Velocity?

#set ($stringList = $string.split(",")) 

que funciona muy bien y divide la cadena utilizando una '' como delimitador como se esperaba.

Mi pregunta es ¿cómo puedo acceder ahora a cada uno de los elementos en $ stringList?

que he intentado:

$stringList.get(0) 
$stringList[0] 
$stringList.[0] 
${stringList}.get(0) 

estoy usando la velocidad en JIRA JIRA y pasa a utilizar la versión 1.4 de velocidad que aparentemente no tiene soporte para acceder a las matrices como se trató anteriormente.

Cualquier ayuda es muy apreciada.

+1

$ stringList.get (0) Trabajos para mi. –

Respuesta

1

Funciona cuando convierto la matriz a una lista usando Arrays.asList() y luego uso los métodos de la lista para acceder a los elementos.

añado lo siguiente para el contexto:

context.put("arrays", Arrays.class); 

En la plantilla de velocidad que utilizo:

#set ($array = $getarray.getArray()) 

$arrays.asList($array).get(0) 

con una cadena-Array de la siguiente manera

new String[] {"test1", "test2", "test3", "test4"}; 

Me da la esperaba salida:

test1 
+0

Gracias por la sugerencia, pero parece que no funciona. Gracias de cualquier manera. – davey1990

+0

Lo probé ahora y funcionó con los pasos enumerados anteriormente, ¿puede publicar el código actual para que podamos ver por qué no funciona para usted? – centic

6

Probado en Velocity 1.6.

#foreach ($element in $string.split(";")) 
    $element 
#end 
+0

Esto también funciona. ¡Gracias! – davey1990

0

También es posible insertar elementos en una matriz como esta.

#set ($matchingProducts = []) 
#set($bar = $matchingProducts.add($p)) 
1

Como de Velocity 1.6, todas las referencias de matriz son ahora "mágicamente" tratado listas de longitud fija como si estuvieran. Esto significa que puede llamar al java.util.List métodos de referencias de matriz. Por lo tanto, si usted tiene una referencia a un array (digamos que éste es un String[] con tres valores), que puede hacer:

Fuente
$myarray.isEmpty() 

$myarray.size() 

$myarray.get(2) 

$myarray.set(1, 'test') 

: http://velocity.apache.org/engine/releases/velocity-1.7/user-guide.html#methods

Cuestiones relacionadas