在velocity中,您可以遍历java hashmap';s条目集()?

在velocity中,您可以遍历java hashmap';s条目集()?,java,xml,velocity,template-engine,Java,Xml,Velocity,Template Engine,可以在velocity模板中执行类似操作吗 #set ($map = $myobject.getMap() ) #foreach ($mapEntry in $map.entrySet()) <name>$mapEntry.key()</name> <value>$mapEntry.value()</value> #end #set($map=$myobject.getMap()) #foreach($map.entrySet()

可以在velocity模板中执行类似操作吗

#set ($map = $myobject.getMap() )
#foreach ($mapEntry in $map.entrySet())
    <name>$mapEntry.key()</name>
    <value>$mapEntry.value()</value>
#end
#set($map=$myobject.getMap())
#foreach($map.entrySet()中的mapEntry)
$mapEntry.key()
$mapEntry.value()
#结束
它输出空白标记,如下所示:

<name></name> 



我做错了什么?

您的错误是将键和值引用为方法(带有尾随的“()”括号),而不是属性。试试这个:

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

换句话说,使用属性(如mapEntry.key)或方法(如mapEntry.getKey()。

我正在寻找一种在velocity中循环HashMap的方法,这也会起作用

#set ($map = $myobject.getMap())
#foreach( $key in $map.keySet())
      <name>$key</name>
      <value>$resume.get($key)</value>
#end
#set($map=$myobject.getMap())
#foreach($map.keySet()中的key)
$key
$resume.get($key)
#结束
就像在java中循环使用HashMap一样。

为了澄清(我不能评论),通常可以使用java get方法,或者用相应的名称替换它们,而不使用小写字母和

因此
$mapEntry.getKey()
map.key

这里是值

itemsValue={data1=1,data2=2,data3=3}
因此,我们需要迭代值组

foreach ($key in ${itemsValue.keySet()})
   if($itemsValue.get($key)==1)
        Condition
   end
end
在上面的代码中,我们可以看到check的值类似于“data1、data2等…”
但是在使用get()之后,我们可以获得实例值

你试过了吗?它输出空白标签和
foreach ($key in ${itemsValue.keySet()})
   if($itemsValue.get($key)==1)
        Condition
   end
end