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);
模型。看跌期权(“价值”,价值);