Java 具有POJO的Freemarker HashMap循环

Java 具有POJO的Freemarker HashMap循环,java,freemarker,Java,Freemarker,我有HashMap汽车,pojo汽车包含属性'engines',这也是HashMap public class Car implements Serializable{ private Long id; private String name; private Map<Long,Engine> engines = new HashMap<>(); .. .. } public class Engine

我有HashMap汽车,pojo汽车包含属性'engines',这也是HashMap

public class Car implements Serializable{
       private Long id;
       private String name;
       private Map<Long,Engine> engines = new HashMap<>();
       ..
       ..
}
public class Engine implements Serializable{
       private Long id;
       private String name;
}
自由标记配置

        cfg = new Configuration();
    cfg.setCacheStorage(new freemarker.cache.MruCacheStorage(20, 250));
    cfg.setClassForTemplateLoading(getClass(), ".");
    cfg.setObjectWrapper(new DefaultObjectWrapper());
模板代码:

 <#assign rKeys = cars?keys>
 <#list rKeys as rKey>
 Car Details:${cars[rKey].getName()}\n
  --------------------------------------------------\n
 <#assign engines = cars[rKey].getEngines()>
 <#assign tKeys = engines?keys>
 <#list tKeys as tKey>
 ------------------Engine Details-----------------\n
 Name: ${engines[tKey].getName()}\n
 </#list>
 </#list>

是否有任何与包含POJO和另一个映射的HashMap相关的特殊处理?

它不适用于使用POJO作为值的映射,我必须更改为List。。。。而且,原语类型的java对象包装器也不起作用,改为原语定义。i、 长-->长


${c.id!'Unknown'}-${c.name!'Unknown'}
${t.id!'Unknown'}-${t.name!'Unknown'}

粘贴完整的错误消息。@agp-我定期做这两件事(地图中的POJO、对象包装)。但是考虑到你不能费心给这里的人提供足够的信息来实际帮助你,我也不能费心回答。
 <#assign rKeys = cars?keys>
 <#list rKeys as rKey>
 Car Details:${cars[rKey].getName()}\n
  --------------------------------------------------\n
 <#assign engines = cars[rKey].getEngines()>
 <#assign tKeys = engines?keys>
 <#list tKeys as tKey>
 ------------------Engine Details-----------------\n
 Name: ${engines[tKey].getName()}\n
 </#list>
 </#list>
${cars[rKey].getName()} [on line 3, column 18 in text.ftl]
<#list cars as c>
 ${c.id!'Unknown'} - ${c.name!'Unknown'}

 <#list c.engineList as t>
    ${t.id!'Unknown'} - ${t.name!'Unknown'}
 </#list>
 </#list>