문제
속도로 삼여 사업자를 할 수있는 방법이 있습니까? 이것이 제가하고 싶은 일입니다.
#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')")
제휴하지 않습니다 StackOverflow