【发布时间】:2014-09-06 20:31:08
【问题描述】:
我正在努力解决 Freemarker 的一个奇怪问题。
<#list fieldMap?keys as key>
${fieldMap[key]}
${fieldMap[key].name}
</#list>
控制台是
GeneratorField{name=expenseType, fieldType=String}
FreeMarker template error:
The following has evaluated to null or missing:
==> fieldMap[key].name [in template "ftl/form.ftl" at line 6, column 7]
如您所见,第一行输出的是 GeneratorField 对象的名称,但是为什么第二个命令失败了?
我正在使用 Freemarker 2.3.20
谢谢
【问题讨论】:
-
${fieldMap[key]}打印的内容正是GeneratorField对象的toString()返回的内容。因此,您看到name=并没有多大意义。那么问题来了,如何在 Java 中获得name?如果使用String getName(),那么该方法是公开的吗? -
我找到了原因,GeneratorField被定义为私有内部类,甚至getter方法都是公共的。我只是把它移到普通班,然后就可以了。
-
好.....然后写这个作为答案......这样其他人就可以知道这个问题已经解决了。
标签: java freemarker