2013-05-27 2 views
1

저는 Java 프로젝트에서 Freemarker로 작업 중입니다. @mycustomdirectiveFreemarker의 중첩 된 지시문 매개 변수

으로 내가 정의 지시어를 정의한 는 매개 변수로이 사용자 지정 지시문 지원하는 다른 지시를합니까?

즉 : 조언에 = "< @othercustomdirective 매개 변수 2 ="... "/>"/>

감사

< @mycustomdirective 매개 변수입니다.

답변

2

지원되지 않습니다. #function -s 및 메소드를 표현식 내에 만 호출 할 수 있습니다 (매개 변수 값 또는 다른 것일 수 있음).

실제로 이것은 이유가 있습니다. 지시어는 출력을 의미하고 함수/메소드는 일반 텍스트 (또는 숫자, 불린 등)를 생성한다고 가정합니다. 따라서 ${exp}이있는 표현식을 삽입하면 자동 호출 (#escape ATM을 통해 ... 그래서 "반자동"이됩니다), 지시문 호출은 없으므로 구별이 중요합니다. 매개 변수 값은 표현식이므로 마크 업이 아닌 것을 의미합니다. 물론 이스케이프를 통해 마크 업에 마크 업을 삽입 할 수는 있지만 그 반대는 근본적으로 불가능합니다. 당신이 정말로 표현 지시문 출력 주위에 전달하려면

는하지만, 해킹있다 :

<#assign captured><@myotherdirective /></#assign> 
<@mydirective parameter=captured /> 
+0

감사합니다! 매우 명확한 :) –