2014-10-10 2 views
1

FreeMarker의 문자열에서 네임 스페이스를 할당 할 수있는 방법이 있습니까? 나는 또한 그것을 평가하려고 노력했으나 그것도 효과가 없을 것입니다.문자열에서 freemarker의 네임 스페이스 할당

<#assign myFruit = ["bannana","apple","orange","pear"]> 

<#list myFruit as i> 
    <#assign fruitTemplate="path/to/${i}.ftl" fruitNamespace="ns${i?capitalize}" /> 
    <#import "${fruitTemplate}" as ${fruitNamespace} /> 
</#list> 

미리 감사드립니다.

답변

2

할당 대상 (as 이후)은 구문 상 표현이 아닌 단지 식별자입니다. 그러나 임의의 문자열 값 (모든 표현식에서 올 수 있음)을 매크로처럼 호출 할 수있는 객체로 구문 분석하는 ?interpret으로 해결할 수 있습니다. 귀하의 경우 : 그것은 FTL에게 표현하지 FTL을 구문 분석하기 때문에

<@'<#import fruitTemplate as ${fruitNamespace}>'?interpret /> 

?eval

이 작동하지 않습니다.

+0

차가움. 이 문제를'import' /'assign' 문서에 문서화 할 수 있습니까? 그것은 매우 도움이 될 것입니다. –

+1

예, 2.3.22 매뉴얼에 추가했습니다. – ddekany

관련 문제