我有以下POJO课程:
public final class Item
{
public final long id;
public final String hash;
public Item(long _id, String _hash)
{
id = _id;
hash = _hash;
}
}
我有ArrayList<Item>
:
ArrayList<Item> list = new ArrayList<>();
list.add(new Item(1, "abc"));
list.add(new Item(2, "def"));
该列表已添加到模板中:
MODEL.addAttribute("history_list", list);
模板成功遍历列表中插入项目的次数但未能获取单个项目的属性:
<#list history_list as row>
<p>${row.hash}</p>
<#else>
no items here
</#list>
错误: 以下评估为null或缺失: ==&GT; row.hash [在第9行第69行的模板“history.ftl”中]
为什么?
答案 0 :(得分:3)
有这样的mail list request允许访问公共字段
解决方案是使用方法setExposeFields
DefaultObjectWrapper wrapper = new DefaultObjectWrapper();
wrapper.setExposeFields(true);
FreeMarkerCfg.setObjectWrapper(wrapper);
中对此进行了解释
如果在BeansWrapper实例上调用
setExposeFields(true)
,它还会将类的公共非静态字段公开为哈希键和值。即如果foo是类Bar的公共非静态字段,而bar是包装Bar实例的模板变量,则bar.foo
表达式将计算为bar对象的字段foo的值。该类的所有超类中的公共字段也被公开。