【问题标题】:Freemarker, list index and count conditionFreemarker、列表索引和计数条件
【发布时间】:2012-04-25 18:00:01
【问题描述】:

我正在 Freemarker 模板中编写一个 JS 对象数组。但我遇到了严重的问题,不包括最后一项后的逗号。

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

所以在列表重复期间,当 index + 1 小于 pages 变量的长度/大小时,它应该写一个逗号。所以当它等于大小时,它应该省略逗号。

那么如何实现呢?

【问题讨论】:

标签: javascript html freemarker


【解决方案1】:

试试item_has_next

在你的例子中:

<#if pages_has_next>,</#if> 

【讨论】:

    【解决方案2】:

    索引必须以您的项目名称为前缀。例如:

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

    应该是:

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

    【讨论】:

      【解决方案3】:

      这可能是一个简单的答案

      <#sep>,</#sep>
      

      【讨论】:

      • 这是最好最简单的解决方案
      【解决方案4】:

      我有一个项目列表,我将使用它创建一个带有多个参数的函数,并带有逗号。我的代码如下:

      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 )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-29
        相关资源
        最近更新 更多