I am using Velocity Templating Language and currently have:
#set ( $stringList = $string.split(",") )
which works fine and splits the string up using a ',' as a delimiter as expected.
My question is how do i now access each of the elements in the $stringList?
I have tried:
$stringList.get(0)
$stringList[0]
$stringList.[0]
${stringList}.get(0)
I am using Velocity in JIRA and JIRA happens to use Velocity version 1.4 which apparently doesn't have support for accessing arrays as tried above.
Any help is much appreciated.
Tested in Velocity 1.6.
#foreach ($element in $string.split(";"))
$element
#end
It works when I convert the array to a List using Arrays.asList() and then use methods from List to access elements.
I add the following to the context:
context.put("arrays", Arrays.class);
In velocity template I use:
#set ( $array = $getarray.getArray() )
$arrays.asList($array).get(0)
With a String-Array as follows
new String[] {"test1", "test2", "test3", "test4"};
I get the expected output:
test1
As of Velocity 1.6, all array references are now "magically" treated as if they are fixed-length lists. This means that you can call
java.util.List
methods on array references. So, if you have a reference to an array (let's say this one is aString[]
with three values), you can do:$myarray.isEmpty() $myarray.size() $myarray.get(2) $myarray.set(1, 'test')
Source: http://velocity.apache.org/engine/releases/velocity-1.7/user-guide.html#methods
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With