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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章