2016-09-01 4 views
0

다음은 내가 고민하는 antlr 문자열 템플릿 코드입니다. 데이터 (또는)가있을 수있는 Item.AmountPaid 속성이 때때로 비어있을 수 있습니다. 따라서 데이터가 없으면 Disabled TR을 표시하고 Enabled TR은 숨기고 그 반대의 경우도 마찬가지입니다. 내가 직면 한 문제는 부동산에 데이터가 있는지 없는지, 매번 IF 문만 실행된다는 것입니다. 당신의 소중한 제안을 알려주십시오. 도와 줘서 고마워!Antlr 문자열 템플릿에서 TR 태그를 표시하거나 숨기는 방법 If Elt

 $ 
     orders: { Item| 
     $if(Item.AmountPaid)$ 
     <tr class="Enabled"> 
     <td>$Item.AmountPaid$</td> 
     <td>$Item.Name$</td> 
     <td>$Item.City$</td> 
     </tr> 

     $else$ 
     <tr class="Disabled"> 
      <td>$Item.AmountPaid$</td> 
      <td>$Item.Name$</td> 
      <td>$Item.City$</td> 
     </tr> 
     $endif$ 
     } 
     $ 
+0

StringTemplates는 ANTLR과 전혀 관련이 없습니다. ST는 ANTLR에서 사용하는 독립형 라이브러리입니다. –

+0

'AmountPaid'데이터 유형은 무엇입니까? 아이템이 부울 타입이라면'if (item)'이 잘 작동합니다. 나는 ST가 빈 값이 아닌 널 값만을 테스트 할 수 있다고 생각한다. –

+0

안녕하세요, 마이크, 감사합니다. 당신은 예의입니다, ST는 널 (또는) 비어 있지 않은 값만을 테스트하고 있습니다. AmountPaid는 문자열 데이터 유형이며 때때로 빈 값을 가져옵니다. 그러나 공백 값 대신에이 문자열 프로퍼티에 null 값을 전달한 후에 {당신의 코멘트 다음에 나에게 맞을뿐입니다}}, 그것은 효과가있었습니다! 다시 한 번 감사드립니다! – Bhargav

답변

1
if(expression) 절에 체크는 부울, null 또는 비어 있지 않은 값에서 작동

있지만 예를 들어, 빈 문자열의 경우. 따라서 사용 된 표현식이 해당 구문 중 하나인지 확인하십시오.