문제

속도로 삼여 사업자를 할 수있는 방법이 있습니까? 이것이 제가하고 싶은 일입니다.

#set ($name = ($args.get(0) == "") ? "default" : $args.get(0))

청키 한 if-else 대신

#if ($args.get(0) == "")
    #set ($name = "default")
#else
    #set ($name = $args.get(0))
#end

어떤 아이디어?

도움이 되었습니까?

해결책

경험과 읽기에서 VTL 참조 이를 수행 할 방법이 없습니다. 이와 같은 과제가 많았다면 아마도 자신의 벨로시마로를 정의하여 다른 IF를 반복하지 않도록 할 수 있습니다.

예를 들어, 매크로가 단일 문자열 만 인쇄하면 다음을 수행 할 수 있습니다.

#set ($name = "#condOpt($args.get(0), "default")")

매크로 호출 주변의 이중 인용문은 #세트의 RHS가 구문 분석되므로 중요합니다.

다른 팁

나는 당신이 말했듯이, 마크 :

#macro(condOp $check, $default)
    #if ($check == "")
        $default
    #else
        $check
    #end
#end

그런 다음 그렇게 부를 수 있습니다.

#set ($name = "#condOp($args.get(0), 'default')")
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top