in velocity can you iterate through a java hashmap's entry set()?

前端 未结 4 1063
傲寒
傲寒 2021-02-01 12:52

Can you do something like this in a velocity template?

#set ($map = $myobject.getMap() )
#foreach ($mapEntry in $map.entrySet())
    $mapEntry.key()&         


        
相关标签:
4条回答
  • 2021-02-01 13:21

    Your mistake is referring to key and value as methods (with trailing "()" parenthesis) instead of as properties. Try this:

    #set ($map = $myobject.getMap() )
    #foreach ($mapEntry in $map.entrySet())
        <name>$mapEntry.key</name>
        <value>$mapEntry.value</value>
    #end
    

    In other words, use either a property, like mapEntry.key, or the method, like mapEntry.getKey().

    0 讨论(0)
  • 2021-02-01 13:31

    I'm looking for a way to loop through a HashMap in velocity, and this will work too.

    #set ($map = $myobject.getMap())
    #foreach( $key in $map.keySet())
          <name>$key</name>
          <value>$resume.get($key)</value>
    #end
    

    Just like the way you would loop through a HashMap in java.

    0 讨论(0)
  • 2021-02-01 13:31

    Here the Value

    itemsValue={data1=1,data2=2,data3=3}
    

    So , we need to iterate the group of value;

    foreach ($key in ${itemsValue.keySet()})
       if($itemsValue.get($key)==1)
            Condition
       end
    end
    

    In the above code we can see check the value will be like -"data1,data2 etc ..." but after using the get(), we can able to get the instance value.

    0 讨论(0)
  • 2021-02-01 13:37

    To clarify (I cannot comment), in general you can use either the Java get methods, or replace them by the corresponding name without with a small letter and without ().

    So $mapEntry.getKey() or map.key.

    0 讨论(0)
提交回复
热议问题