我有一个免费标记列表,如下所示:
<#assign listVar = ["v1", "v2", "v3", "v4" ] />
从上面的列表中,我只希望子列表为 v1 和 v2。
我一直在徘徊以获取免费标记中的子列表。但是没能找到。
任何帮助将不胜感激。
我有一个免费标记列表,如下所示:
<#assign listVar = ["v1", "v2", "v3", "v4" ] />
从上面的列表中,我只希望子列表为 v1 和 v2。
我一直在徘徊以获取免费标记中的子列表。但是没能找到。
任何帮助将不胜感激。
如果您真的想根据索引制作该切片:
<#assign listVar = ["v1", "v2", "v3", "v4" ] />
<#assign sublistVar = listVar[0..1] />
请参阅Freemarker 序列切片。
但请注意,如果索引超出范围,它将因错误而停止。根据您的需要,您可能想要使用它?chunk(2)
。
更新:为避免 index-out-of-bounds 错误,在 FreeMarker 2.3.21 中,您可以发出listVar[0..*2]
,这将切出 2 个项目,如果可用的项目更少,则更少。(独家端切片也可以派上用场listVar[0..<2]
:)
您可以index
在列出序列时使用该变量。
<#assign listVar = ["v1", "v2", "v3", "v4" ] />
<#list listVar as aVar>
<#if aVar_index > 2><#break/></#if>
</#list>
您还可以使用 对序列进行分区chunk
。这会将序列拆分为给定大小的多个序列。
<#assign partitions = listVar?chunk(2) />
<#assign firstPartition = partitions?first />
资料来源:FreeMarker 手册
但是,最好在将数据传递给模板之前对其进行过滤。