可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Can you do something like this in a velocity template?
#set ($map = $myobject.getMap() ) #foreach ($mapEntry in $map.entrySet()) <name>$mapEntry.key()</name> <value>$mapEntry.value()</value> #end
it outputs blank tags like so:
<name></name>
and
<value></value>
What am I doing wrong?
回答1:
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().
回答2:
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.
回答3:
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.
回答4:
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
.