freemarker模板语法spring boot

时间:2015-10-01 22:32:43

标签: java spring freemarker

我有一个springboot应用程序,可以创建一个hashmap。我想创建一个具有一个标题和多个行的表(地图中的每个值都有一个)。以下代码返回ISE:

  

出现意外错误(type = Internal Server Error,   状态= 500)。无法解析URL的FreeMarker模板   [toDoListView.ftl];嵌套异常是   freemarker.core.ParseException:模板中的语法错误   第47行第37行中的“toDoListView.ftl”:遇到“>”,但是   期待以下之一:“..”“.. ”“as”“。” “[”“(”“?”“!”    “??” “+”“ - ”“”“/”“%”“!=”“=”“==”“> =”    “>” 中   

第47行是:< #list itemMap>

<#if itemMap??>
    <table class="table table-bordered">
        <#list itemMap>
            <thead>
                <tr>
                    <th></th>
                    <th>Item1</th>
                    <th>Item2</th>
                    <th>Item3</th>
                </tr>
            </thead>
        <#item?keys as key>
            <#if !itemMap?values[key_index].done>
                <tbody>
                    <tr>
                        <td id="checkbox_column" width="40">
                            <input type="checkbox" name="im" value="${key}">
                        </td>
                        <#if itemMap?values[key_index].color == "BLUE">
                            <td>${itemMap?values[key_index].blue}</td>
                        <#elseif itemMap?values[key_index].color == "RED">
                            <td>${itemMap?values[key_index].red}</td> 
                        </#if>
                    </tr>
                </tbody>
            </#if> 
        </#item?keys>
    </table>
<#else>
    No Items!
</#list>

我不确定导致此错误的原因。我试图按照表格2中列出的示例进行操作:http://freemarker.org/docs/ref_directive_list.html

1 个答案:

答案 0 :(得分:1)

当然这是因为你在2.3.23之前使用的是FreeMarker版本。在2.3.23之前,您无法从as标记中省略#list。 (你后面也有一些杂乱的部分,如<#itemMap?keys as key></#listy?keys>,但我认为你可以解决这些问题。)

要检查FreeMarker版本,请尝试${.version}(删除语法错误的部分后)。要增加来自Spring BOM的FreeMarker版本,请在POM的dependencyManagement部分中覆盖它。类似的东西:

<dependencyManagement>
  ...
  <dependency>
    <groupId>org.freemarker</groupId>
    <artifactId>freemarker</artifactId>
    <version>2.3.23</version>
  <dependency>
  ...
</dependencyManagement>