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> 

Это сообщение об ошибке: Обнаружен, но ожидал один из "": STRING_LITERAL
RAW_STRING
ID
Может кто-нибудь помочь мне с этим? Спасибо.

+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 />. Очевидно, что это ужасно ... Кстати, что здесь используется? Зачем вам нужно назначать динамически сконструированные имена переменных?

Смежные вопросы