gpt4 book ai didi

java - 如何使用 Freemarker 显示 List> 数据?

转载 作者:行者123 更新时间:2023-12-01 23:56:48 26 4
gpt4 key购买 nike

我将两个Map对象放在一个ArrayList中,我想根据ArrayList的索引显示不同的数据,java代码如下:

List<Map<String, Object>> value = new ArrayList<Map<String, Object>>();
value.add(originalUnitProps);
value.add(nowUnitProps);

以下是我的模板文件:

<#list value as ori>
<#if ori_index == 0>

original info:<br/>

<#list ori?keys as key>
${key}:${ori[key]} <br/>
</#list>
<#else>
<br/>
now info:<br/>
<#list ori?keys as key>
${key}:${ori[key]} <br/>
</#list>
</#if>
</#list>

但它会导致异常:

java.lang.IllegalArgumentException: freemarker.template.DefaultObjectWrapper could not convert java.util.ArrayList to a TemplateHashModel.

最佳答案

该问题与您的模板无关。显然,你已经通过了value以 FreeMarker 作为数据模型,但数据模型必须是 Map<String, ...>TemplateHashModel 。因此创建一个Map<String, Object> dataModel ,把那个ArrayList命名为有意义的名称,例如 dataModel.put("infos", value) ,通过dataModel到 FreeMarker 而不是 value ,然后在模板中使用 <#list infos as ...> .

此外,如果您有错误消息,请下次附加整个堆栈跟踪。

关于java - 如何使用 Freemarker 显示 List<Map<String,Object>> 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15472618/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com