Freemarker, индекс списка и условие подсчета

Я пишу массив объектов JS в шаблоне Freemarker. Но у меня серьезные проблемы, не включая запятую после последнего пункта.

<#assign pages = module.pages.page>
wh.pages = [
<#list pages as page>
{"name" : "${page.@name}", "href" : "${page.@href}"}
<#if (index+1) < pages?size>,</#if>
</#list>
]

поэтому во время повторения списка, хотя индекс + 1 меньше длины/размера переменной pages, он должен написать запятую. Так что, когда он равен размеру, он должен опустить запятую.

Так как этого можно достичь?

3 ответов


попробовать item_has_next

в вашем примере:

<#if pages_has_next>,</#if> 

индекс должен иметь префикс с вашим именем элемента. В Примере:

<#if (index+1) < pages?size>,</#if>

должно быть:

<#if (page_index+1) < pages?size>,</#if>

у меня есть список элементов и с помощью этого я собираюсь создать функцию с несколькими параметрами с запятой. Мой код выглядит следующим образом:

def ${function.name}(<#list function.params as param> ${param.name}:${param.paramType}<#if function.params?size != (param?index+1)>,</#if> </#list>)

он будет генерировать следующий вывод:

   def func1( input1:String,  input2:String )