How to access elements of array after using string.split in Velocity?
Solution 1
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
Solution 2
Tested in Velocity 1.6.
#foreach ($element in $string.split(";"))
$element
#end
Solution 3
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
Mr-DC
Updated on July 29, 2020Comments
-
Mr-DC almost 4 years
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.
-
Mr-DC over 12 yearsThanks for the suggestion centic but it doesnt seem to work. Thanks anyway.
-
centic over 12 yearsI tried it now and it worked with the steps listed above, can you post you current code so we can see why it does not work for you?