Java 如何使用Freemarker显示列表<;地图<;字符串,对象>&燃气轮机;数据?

Java 如何使用Freemarker显示列表<;地图<;字符串,对象>&燃气轮机;数据?,java,freemarker,Java,Freemarker,我将两个Map对象放在ArrayList中,我想根据ArrayList的索引显示不同的数据,java代码如下: List<Map<String, Object>> value = new ArrayList<Map<String, Object>>(); value.add(originalUnitProps); value.add(nowUnitProps); List value=new ArrayList(); 附加值(原属性); valu

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

List<Map<String, Object>> value = new ArrayList<Map<String, Object>>();
value.add(originalUnitProps);
value.add(nowUnitProps);
List value=new ArrayList();
附加值(原属性);
value.add(nowUnitProps);
下面是我的模板文件:


原始信息:
${key}:${ori[key]}

现在信息:
${key}:${ori[key]}
但它导致了一个例外:

java.lang.IllegalArgumentException:freemarker.template.DefaultObjectWrapper无法将java.util.ArrayList转换为TemplateHashModel


问题与模板无关。显然,您已将
作为数据模型传递给FreeMarker,但数据模型必须是
映射
模板HashModel
。因此,创建一个
映射数据模型
,将该
数组列表
放入一个有意义的名称中,类似于
数据模型。放入(“infos”,value)
,将
数据模型
传递给FreeMarker而不是
,然后在模板中使用


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

问题与模板无关。显然,您已将
作为数据模型传递给FreeMarker,但数据模型必须是
映射
模板HashModel
。因此,创建一个
映射数据模型
,将该
数组列表
放入一个有意义的名称中,类似于
数据模型。放入(“infos”,value)
,将
数据模型
传递给FreeMarker而不是
,然后在模板中使用


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

我成功地运行了该程序,并使用以下代码设置模型:

Map<String, Object> originalUnitProps = new HashMap<>();
originalUnitProps.put("Lang1", Locale.FRENCH);
originalUnitProps.put("Lang2", Locale.CANADA_FRENCH);

Map<String, Object> nowUnitProps = new HashMap<>();
nowUnitProps.put("Lang3", Locale.ENGLISH);
nowUnitProps.put("Lang4", Locale.GERMAN);

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

model.put("value", value);
Map originalUnitProps=new HashMap();
originalUnitProps.put(“Lang1”,Locale.FRENCH);
原文为:put(“Lang2”,Locale.CANADA\u-FRENCH);
Map nowUnitProps=newHashMap();
nowUnitProps.put(“Lang3”,Locale.ENGLISH);
nowUnitProps.put(“Lang4”,Locale.德语);
列表值=新的ArrayList();
附加值(原属性);
value.add(nowUnitProps);
模型。看跌期权(“价值”,价值);

我成功地运行了该程序,并使用以下代码设置了模型:

Map<String, Object> originalUnitProps = new HashMap<>();
originalUnitProps.put("Lang1", Locale.FRENCH);
originalUnitProps.put("Lang2", Locale.CANADA_FRENCH);

Map<String, Object> nowUnitProps = new HashMap<>();
nowUnitProps.put("Lang3", Locale.ENGLISH);
nowUnitProps.put("Lang4", Locale.GERMAN);

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

model.put("value", value);
Map originalUnitProps=new HashMap();
originalUnitProps.put(“Lang1”,Locale.FRENCH);
原文为:put(“Lang2”,Locale.CANADA\u-FRENCH);
Map nowUnitProps=newHashMap();
nowUnitProps.put(“Lang3”,Locale.ENGLISH);
nowUnitProps.put(“Lang4”,Locale.德语);
列表值=新的ArrayList();
附加值(原属性);
value.add(nowUnitProps);
模型。看跌期权(“价值”,价值);