Freemarker 3種循環模式
)
1. map循環
舉例:
<#if vo.urlMap??>
<#list vo.urlMap?keys as key>
<li>
<a href="${vo.urlMap[key]!''}">${key!''}</a>
</li>
</#list>
</#if>
vo.urlMap?keys
: 將map
中的key循環(類似keySet
迭代器)- 循環中通過
map[key]
來取的key
對應的value
- 如果需要當前循環下標, 使用
循環對象_index
取即可, 如:key_index
2. list循環
舉例:
<#list vo.valueList as value>
<td>${value!''}</td>
</#list>
3. 自定義次數循環
舉例:
<!-- 動態長度 -->
<#list 0..(nums?number)!0 as i>
<td>${vo.valueList[i]!''}</td>
</#list>
<!-- 固定長度 -->
<#list 1..100 as i>
<td>${vo.valueList[i]!''}</td>
</#list>
用於配合取出list
中的元素(list長度有時少於預期, 所以自定義次數)
需要注意的是, 由於循環次數和
list
長度解耦了, 要小心數組越界,
(可以通過默認值的方式避免)
如:${(vo.valueList[i])!'無'}
將前面整個用括號括起來會自動判定每一步是否爲null