我有一个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
答案 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>