admin管理员组文章数量:1642485
在用freemarker用以下方式迭代list时报错:
<#list list as map>
<#list map?keys as itemkey>
<#if itemkey="address">${map[itemkey]}</#if>
</#list>
</#list>
java.lang.IllegalArgumentException: freemarker.template.DefaultObjectWrapper didn't convert java.util.ArrayList to a TemplateHashModel. Generally, you want to use a Map<String, Object> or a JavaBean as the root-map (aka. data-model) parameter. The Map key-s or JavaBean property names will be the variable names in the template.
问题代码:
List<Map<String, String>> list = new ArrayList<>();
list.add(dataMap1);
list.add(dataMap2);
list.add(dataMap3);
问题处理:给html传值是以map键值对的形式,所以把list放到map里就可以
List<Map<String, String>> list = new ArrayList<>();
list.add(dataMap1);
list.add(dataMap2);
list.add(dataMap3);
Map<String,Object> dataMap = new HashMap<>();
dataMap.put("list",list);
注:list里放的是对象,对象修饰符必须为public,否则freemarker模版读取不到数据。
本文标签: DefaultObjectWrapperConvertFreemarkertemplateArrayList
版权声明:本文标题:freemarker.template.DefaultObjectWrapper didn't convert java.util.ArrayList to a TemplateHashModel 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729340096a1197430.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论