2011-12-20 6 views
4

키와 값 및 사용자 정의 클래스가있는 맵이 있습니다. 핵심 클래스는 Position라고 예를 new Position(2, 4) 두 INT (인스턴스화됩니다.FreeMarker : 맵 값이 null인지 확인하십시오.

내가이 위치 클래스를 제거 렌더링 기술과 함께 사용하기 위해 SimpleHash에지도를 변환있어

가. 내가 지금 누구의 키 SimpleHash이 문자열 (예 "2 4"에 대한) 위치 값을 매핑하고 값이 있습니다 중 하나 나는 SimpleMap에서 특정 항목의 값이 (map로 전달하는지 확인하는 데 필요한 템플릿에서 null 또는 Lot (정의) 클래스입니다.

)가 null 또는 Lot 인스턴스 중 하나임

 <#list mapMinY..mapMaxY as y> 
      <tr> 
       <#list mapMinX..mapMaxX as x> 
        <td> 
         <div> 
          <!-- Check if map[x + " " + y] is null --> 
          ${x}, ${y} 
         </div> 
        </td> 
       </#list> 
      </tr> 
     </#list> 

어떻게하는가?

답변

1

freemarker가 홀수 일 때 null 값은 두 가지 방법으로 해결됩니다. 누락 된 값으로 1.Treat : 참/거짓 검사로 확인

${map[x + " " + y]!} 
    do Stuff 
${map[x + " " + y]!} 

2.Just 변환합니다. 이것은 isNull (Object obj) 함수를 사용하여 유틸리티 클래스를 사용하여 수행 할 수 있습니다.

utilClass.isNull(map[x + " " + y])==true 
+0

여기에 맞춤 유틸리티가 필요하지 않습니다. FreeMarker에는 null/missing 값을 처리하는 꽤 많은 전용 연산자가 있습니다 (내 대답 참조). ('== true' 확인은 다소 이상하게 보입니다 ...)'utilClass.isNull'는 누락 된 키에서도 null을 말할 수 없었습니다. 기본적으로'Map.get'이 리턴하는 것을 얻었 기 때문에'null '두 경우 모두. – ddekany

관련 문제