freemarker for循环怎么写

如题所述

代码如下:

<#if totalPage gt 10>
<#list 1..10 as t>
<#if pageNo==t> <li class="thisclass">${t}</li>
<#else>    <li><a href="${menu.address}/list_${t}.html">${t}</a></li>
</#if>
</#list>
<#else>
<#list 1..totalPage as t>
<#if pageNo==t> <li class="thisclass">${t}</li>
<#else>      <li><a href="${menu.address}/list_${t}.html">${t}</a></li>
</#if>
</#list>
</#if>

扩展资料

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>

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-20
首先,freemarker的ftl指令里没有for循环这个用法,因为freemarker是一种纯粹的视图技术,不允许在ftl页面里写任何Java代码。
其次,如果只是想迭代输出的话,你可以用<#list/>这个标签。
再次,如果你是在Struts2中用freemarker的话,还可以引用struts2标签库的<s:iterator/>标签来实现相同功能,但首先要引入Struts2的标签库。
第2个回答  推荐于2018-02-26
可以变通一下吗
<#list 1..100 as t>
${t}
</#list>
循环1到100
这不就相当于
for(int i=1;i<=100;i++){

}本回答被提问者和网友采纳