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!''} index=${value_index}</td>
</#list>
<#list 0..blocks.length-1 as index>
<@block block=blocks[index] index=index+1 />
</#list>
用于配合取出list中的元素(list长度有时少于预期, 所以自定义次数)
需要注意的是, 由于循环次数和list长度解耦了, 要小心数组越界,(可以通过默认值的方式避免)如: ${(vo.valueList[i])!'无'}将前面整个用括号括起来会自动判定每一步是否为null
自定义循环
<!-- 动态长度 -->
<#list 0..(nums?number)!0 as i>
<td>${vo.valueList[i]!''}</td>
</#list>
<#list 0..5 as i>
${i}
</#list>
<#list -1..0 as i>
${i}
</#list>
<#list 0..0 as i>
${i}
</#list>
<#list 1..0 as i>
${i}
</#list>
<#list 2..0 as i>
${i}
</#list>
<#list 3..0 as i>
${i}
</#list>
0
1
2
3
4
5
-1
0
0
1
0
2
1
0
3
2
1
0
评论区