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>
'IT이야기' 카테고리의 다른 글
Vue-resource에서 Express 정적 파일을 로드할 수 없음 (0) | 2022.04.21 |
---|---|
github/gitlab 페이지가 있는 vuejs 기록 모드 (0) | 2022.04.21 |
MPI 통신에 MPI_B캐스트 사용 (0) | 2022.04.19 |
왜 이러한 구성들은 사전 및 사후 증가 미정의 행동을 사용하는가? (0) | 2022.04.19 |
vuex에서 로그인 작업 후 Axios 요청에 헤더 토큰 추가 (0) | 2022.04.19 |