2010-01-12 1 views
35

속도 템플릿에서 이와 같은 작업을 수행 할 수 있습니까? 내가 잘못 뭐하는 거지이면 Java 해시 맵의 항목 set()을 통해 반복 할 수 있습니까?

<name></name> 

<value></value> 

:

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

는 그렇게 같은 빈 태그를 출력?

+0

어떤 일이 벌어 지는지 보셨습니까? – Mark

+0

빈 태그를 출력합니다. Ayrad

답변

89

귀하의 실수는 대신 속성으로의 ("()"괄호 후행와) 방법으로 를 참조한다. 이 시도 : 즉

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

mapEntry.getKey()처럼 mapEntry.key, 또는 방법처럼, 두 속성을 사용합니다.

4

속도로 HashMap을 반복하는 방법을 찾고 있는데이 방법도 효과가 있습니다.

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

자바에서 HashMap을 반복하는 방식과 같습니다.

-1

일반적으로 Java get 메소드를 사용하거나 작은 문자없이 ()없이 해당 이름으로 바꿀 수 있습니다 (주석을 달 수는 없습니다).

so $mapEntry.getKey() 또는 map.key. 여기

0

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

그래서, 우리는 값의 그룹을 반복 할 필요가;

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

위의 코드에서 우리는 값이 같을 것입니다 확인 볼 수 있습니다 - "데이터 1, 데이터 2 등 ..." 하지만 GET()을 사용 후, 우리는 할 수 인스턴스 값을 얻을 수 있습니다.