freemarker模板语法 Spring Boot

lstz6jyr  于 2023-02-15  发布在  Spring
关注(0)|答案(1)|浏览(160)

我有一个创建散列表的springboot应用程序,我想创建一个有一个表头和多行的表(Map中的每个值对应一行),下面的代码返回一个伊势:
出现错误(类型=内部服务器错误,状态=500)。无法分析URL [toDoListView.ftl]的FreeMarker模板;嵌套异常是freemarker.core。第47行第37列模板“toDoListView.ftl”语法错误:遇到“〉",但应是以下之一:..”“.. ”“替换为”“。[””(““?”“!”“?”“+”“-”””“/”“%””!=”“=”“=”“〉=”“〉”
第47行是:〈#列表项Map〉

<#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

lf5gs5x2

lf5gs5x21#

当然,这是因为您使用的是2.3.23之前的FreeMarker版本。在2.3.23之前,您不能从#list标签中省略as。(您稍后也会遇到一些混乱的部分,如<#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>

相关问题