2015-01-15 3 views
0

Freemarker를 사용하여 변수에 값을 할당하는 중 문제가 발생했습니다. Freemarker가 변수에 값을 할당합니다.

<#if size??> 
<#assign num=size?number> 
<#if (num>0)>  
    <#list 0..num-1 as i> 
     <#if .vars['abc'+i?c] = "test"> 
      <#assign .vars['abc'+i?c] = .vars['abc'+i?c]?replace("test","Test")> 
     </#if> 
    </#list> 
</#if> 

는 오류 메시지는 다음과 같습니다 "."가 발생하지만, 하나 기다리고 있었다 :
이 ID
이 사람이 나를 도와 줄 수 RAW_STRING STRING_LITERAL
를? 감사합니다.

+0

주제에서 벗어나지 만, 그런 상황에서는'# if' +'# list'가 필요하지 않습니다.'<#list 0 ..! num as i> '와 같이 배타적 인 끝이있는 범위를 사용하십시오. (FreeMarker 2.3.21 필요). – ddekany

답변

0

FreeMarker 템플릿에만 최상위 변수를 쓸 수 있습니다. 또한 동적으로 생성 된 이름을 가진 변수에는 ?interpret 해킹을 제외하고 할당 할 수 없습니다. <@"<#assign abc${i?c} = abc${i?c}?reaplce('test', "Test")>"?interpret />. 분명히 그게 무서운 ... BTW, 여기에 무슨 유스 케이스있어? 왜 동적으로 생성 된 변수 이름에 할당해야합니까?

관련 문제