53

你能在速度模板中做这样的事情吗?

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

它输出空白标签,如下所示:

<name></name> 

<value></value> 

我究竟做错了什么?

4

4 回答 4

123

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

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

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

于 2010-01-12T15:59:01.970 回答
6

我正在寻找一种以速度循环遍历 HashMap 的方法,这也可以。

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

就像在 java 中循环遍历 HashMap 的方式一样。

于 2014-03-27T13:57:41.553 回答
2

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

所以$mapEntry.getKey()map.key

于 2016-11-01T12:52:37.907 回答
1

这里的价值

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

所以,我们需要迭代这组值;

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

在上面的代码中,我们可以看到检查值将类似于 -"data1,data2 etc ..." 但使用 get() 后,我们可以获取实例值。

于 2017-01-30T13:48:07.030 回答