日期:2014-05-19  浏览次数:20618 次

freemarker 循环问题
我先从map.put("length",20);
得到一个length

现在我想循环这个次数,用length于来代替这个20,
而且将n 也就是循环次数的值给到test+n;
如:
<a id = "test1"></a>
<a id = "test2"></a>
<a id = "test3"></a>
...

请问大侠有啥方法?
<#list 1..20 as n>
  <a id = "test"></a>
</#list>
------最佳解决方案--------------------
不晓得楼主是不是这个意思:
<#list 1..length as n>
<a id = "test${n}">${n}</a>
</#list>


------其他解决方案--------------------
是这个意思,但是问题好像并不能这样写,我试过直接报错
------其他解决方案--------------------
引用:
是这个意思,但是问题好像并不能这样写,我试过直接报错


你哪里报错呢???
------其他解决方案--------------------
引用:
不晓得楼主是不是这个意思:
<#list 1..length as n>
<a id = "test${n}">${n}</a>
</#list>

是这个意思,但是问题好像并不能这样写,我试过直接报错 
------其他解决方案--------------------
引用:
引用:
是这个意思,但是问题好像并不能这样写,我试过直接报错

你哪里报错呢???


<#list 1..length as n>
这一行就开始报错了,无论是用 length  还是 ${length} 都是。。
------其他解决方案--------------------


freemarker.core.ParseException: Encountered "{" at line 119, column 13 in actCourse.ftl.
Was expecting one of:
    "as" ...
    "." ...
    "[" ...
    "(" ...
    "?" ...
    "!" ...
    <TERMINATING_EXCLAM> ...
    "??" ...
    "+" ...
    "-" ...
    "*" ...
    "/" ...
    "%" ...
    "!=" ...
    "=" ...
    "==" ...
    ">=" ...
    <ESCAPED_GTE> ...
    ">" ...
    <ESCAPED_GT> ...
    <LESS_THAN_EQUALS> ...
    <LESS_THAN> ...
    ".." ...
    <AND> ...
    <OR> ...
    
at freemarker.core.FMParser.generateParseException(FMParser.java:4697)
at freemarker.core.FMParser.jj_consume_token(FMParser.java:4568)
at freemarker.core.FMParser.List(FMParser.java:1254)
at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2375)
at freemarker.core.FMParser.Content(FMParser.java:2618)
at freemarker.core.FMParser.OptionalBlock(FMParser.java:2786)
at freemarker.core.FMParser.List(FMParser.java:1257)
at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2375)
at freemarker.core.FMParser.Content(FMParser.java:2618)