How to access elements of array after using string.split in Velocity?

前端 未结 4 1759
旧巷少年郎
旧巷少年郎 2020-12-20 18:15

I am using Velocity Templating Language and currently have:

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

which works fine and splits the str

相关标签:
4条回答
  • 2020-12-20 18:40

    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
    
    0 讨论(0)
  • 2020-12-20 18:49

    Tested in Velocity 1.6.

    #foreach ($element in $string.split(";"))
       $element
    #end
    
    0 讨论(0)
  • 2020-12-20 18:53

    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 a String[] 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

    0 讨论(0)
  • 2020-12-20 18:55

    Its also possible to push elements into an array like this.

    #set ($matchingProducts = [])
    #set($bar = $matchingProducts.add($p))
    
    0 讨论(0)
提交回复
热议问题