freemarker遍历list处理第一个、最后一个元素

_index获取下标

如果需要显示当前循环到第几项,可以这样写

<#list ["hello","world"] as word>
    ${word_index+1},${hi}
< /#list>

as 后面的那个变量,加上_index,就可以表示当前循环到第几项
结果是:
1,hello
2,world

对第一个元素进行处理,判断是否第一个元素,就可以_index = 0

#if word_index = 0>...if>

_has_next判断是否最后一项

有时候,最后一项在显示的时候可能要做特殊处理,例如不加逗号

<#list ["hello","world"] as word>
    ${word}<#if word_has_next>,#if>#list>

输出结果为hello,world

另外,在我的开源SpringBootCodeGenerator项目中一段代码实战,也是类似道理。

@ApiOperation(value = "${classInfo.classComment}", notes = "${classInfo.classComment}")
    @ApiImplicitParams({
            <#if classInfo.fieldList?exists && classInfo.fieldList?size gt 0>
                <#list classInfo.fieldList as fieldItem >
                @ApiImplicitParam(name = "${fieldItem.fieldName}", value = "${fieldItem.fieldComment}", required = false, dataType = "${fieldItem.fieldClass}")<#if fieldItem_has_next>,if>
                #list>
            #if>
    }
    )

break退出循环

如果想在循环中判断到某一项时退出,可以这样做

<#list users as user>
   <span>${user.name}span>
   <#if user.name == "admin"><#break>#break>
< /#list>

你可能感兴趣的:(杂谈)