【发布时间】:2015-10-26 01:52:35
【问题描述】:
我在 Eclipse 中使用 freemarker 2.3.23 来生成报告。 下面是数据模型的代码:
ArrayList<Cell> namelist=new ArrayList<Cell>();
Cell cell1=new Cell();
cell1.data.add("element1");
namelist.add(cell1);
Cell cell2=new Cell();
cell2.data.add("element2");
namelist.add(cell2);
data.put("namelist", namelist);
Cell 类的代码:
public class Cell {
public ArrayList<String> data;
public Cell(){
data=new ArrayList<String>();
}
}
模板代码:
<#list namelist as name>
<#list name.data as element>
${element}
</#list>
</#list>
但得到如下错误堆栈:
FreeMarker 模板错误:以下已评估为 null 或 失踪: ==> name.data [在模板“report.ftl”中,第 33 行,第 16 列]
---- 提示:这是导致此错误的最后一个点之后的步骤,而不是它之前的步骤。 ---- 提示:如果已知失败的表达式合法地引用了有时为空或缺失的内容,请指定默认值 像 myOptionalVar!myDefault 这样的值,或使用 when-presentwhen-missing。 (这些只有 覆盖表达式的最后一步;覆盖整个表达式,
使用括号:(myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
---- FTL 堆栈跟踪(“~”表示嵌套相关):
- 失败于:#list name.data 作为元素 [in template "report.ftl" at line 33, column 9]
【问题讨论】:
标签: java templates freemarker