子列表我有如下無選擇標記列表:從列表中獲取的freemarker
<#assign listVar = ["v1", "v2", "v3", "v4" ] />
從上面的列表我只想子列表作爲V1和V2。
我一直在徘徊獲取自由標記中的子列表。但無法找到。
任何幫助將不勝感激。
子列表我有如下無選擇標記列表:從列表中獲取的freemarker
<#assign listVar = ["v1", "v2", "v3", "v4" ] />
從上面的列表我只想子列表作爲V1和V2。
我一直在徘徊獲取自由標記中的子列表。但無法找到。
任何幫助將不勝感激。
當您列出序列時,您可以使用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 />
然而,最好是將它傳遞給模板之前對數據進行篩選。
如果你真的想基於指數該片:
<#assign listVar = ["v1", "v2", "v3", "v4" ] />
<#assign sublistVar = listVar[0..1] />
但要注意,它會與錯誤停止,如果該指數超出範圍。取決於你需要什麼,你可能想用?chunk(2)
來代替。
更新:作爲避免索引出界外的錯誤,在FreeMarker的2.3.21可以發出listVar[0..*2]
,這將切出2項或更少,如果有較少可用。 (另外獨家結束切片可以得心應手:listVar[0..<2]
)
你救了我的一天。 – Devz
可能會有所幫助[link1](http://bethecoder.com/applications/tutorials/template-engines/freemarker/split-the-string-and-get- substrings-by-index.html),[link2](http://freemarker.624813.n4.nabble.com/Splitting-a-list-and-adding-elements-td3341910.html) –
我覺得這段代碼給了想法爲您的要求<#list listVar當x> $ {X} <#如果X = 「V2」><#break>#if> #list> –
但是,我不想基於列表的內容來獲得子列表。相反,我希望基於列表的索引。有什麼想法嗎? – venky