2015-01-15 151 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> 

這是錯誤消息:遇到過,但期待中的一個 「」: STRING_LITERAL
RAW_STRING
ID
誰能幫助我? 謝謝。

+0

關閉主題,但是您不需要'#if' +'#list'這樣的情況下,只需使用帶有獨佔結束的範圍,如'<#list 0 ..!num as i>'。 (需要FreeMarker 2.3.21。) – ddekany

回答

0

您只能在FreeMarker模板中編寫頂級變量。除了?interpret hack:<@"<#assign abc${i?c} = abc${i?c}?reaplce('test', "Test")>"?interpret />之外,您也不能將其分配給具有動態構造名稱的變量。顯然這是可怕的... BTW,這裏的用例是什麼?爲什麼你需要分配給動態構建的變量名?