1
我正在努力解决Freemarker奇怪的问题。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()'那么是否该方法是public? – ddekany 2014-09-07 20:49:37
我找到了原因,将GeneratorField定义为私有内部类,即使getter方法是公共的。我只是把它移动到普通班上,然后它就可以工作。 – user595234 2014-09-08 00:48:13
不错.....然后写这个答案...所以其他人可以知道这个问题已经解决了。 – 2014-09-08 07:29:47