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 に答える