IT이야기

FreeMarker 템플릿에 변수가 있는지 확인하는 방법

cyworld 2022. 4. 21. 21:25
반응형

FreeMarker 템플릿에 변수가 있는지 확인하는 방법

나는 프리마케터 템플릿이 있는데, 이 템플릿은 템플릿이 처리될 때 값이 제공되는 자리 표시자 여러 개를 포함하고 있다.userName 변수가 제공된 경우 템플릿의 일부를 조건부로 포함시키십시오.

[#if_exists userName]
  Hi ${userName}, How are you?
[/#if_exists]

그러나 FreeMarker 매뉴얼은 if_exists가 더 이상 사용되지 않는다는 것을 나타내는 것 같지만, 나는 이것을 달성할 다른 방법을 찾을 수 없다.물론 추가적인 부울 변수 isUserName을 간단하게 제공하고 다음과 같이 사용할 수 있다.

[#if isUserName]
  Hi ${userName}, How are you?
[/#if]

그러나 userName이 존재하는지 확인하는 방법이 있다면 이 추가 변수를 추가하는 것을 피할 수 있다.

값이 있는지 확인하려면:

[#if userName??]
   Hi ${userName}, How are you?
[/#if]

또는 표준 프리마케터 구문을 사용하여 다음을 수행하십시오.

<#if userName??>
   Hi ${userName}, How are you?
</#if>

값이 존재하고 비어 있지 않은지 확인하려면:

<#if userName?has_content>
    Hi ${userName}, How are you?
</#if>

이번 것이 더 잘 맞는 것 같다.

<#if userName?has_content>
... do something
</#if>

http://freemarker.sourceforge.net/docs/ref_builtins_expert.html

또한 if_exists가 다음과 같이 사용되었다고 생각한다.

Hi ${userName?if_exists}, How are you?

userName이 null이면 중단되지 않고 null이면 다음과 같은 결과가 나타남:

Hi , How are you?

if_properties는 이제 사용되지 않으며 에서와 같이 기본 연산자 !로 대체되었다.

Hi ${userName!}, How are you?

기본 연산자는 또한 다음과 같은 기본값을 지원한다.

Hi ${userName!"John Doe"}, How are you?

나는 많은 사람들이 자신의 변수가 빈 것이 아니라 존재하는지를 확인할 수 있기를 원한다고 생각한다.나는 존재와 공허함을 확인하는 것이 많은 경우에 좋은 생각이고, 당신의 템플릿이 더 견고하고 어리석은 실수를 덜 하게 만든다고 생각한다.즉, 변수를 사용하기 전에 변수가 null이 아닌지 확인하고 비어 있지 않은지 확인하면 템플릿이 더 유연해진다. null 변수나 빈 문자열을 넣을 수 있고, 두 경우 모두 동일하게 작동하기 때문이다.

<#if p?? && p?has_content>1</#if>

확실히 하고 싶다고 가정해 봅시다.p그냥 공백이 아니다.그러면 잘랐는지 확인 전에 다듬어주면 되겠네.has_content.

<#if p?? && p?trim?has_content>1</#if>

갱신하다

제 제안을 무시하십시오.has_content그것은 빈 수표와 함께 무효 수표를 하기 때문에 필요한 모든 것이다.하고 있다p?? && p?has_content와 같다p?has_content, 그래서 당신은 그냥 사용하는 것이 좋다.has_content.

FreeMarker 2.3.7 이전 버전의 경우

사용할 수 없음??누락된 값을 처리하기 위해 이전 구문은 다음과 같다.

<#if userName?exists>
   Hi ${userName}, How are you?
</#if>

참조URL: https://stackoverflow.com/questions/306732/how-to-check-if-a-variable-exists-in-a-freemarker-template

반응형