有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JETT模板引擎不支持集合列表,而是支持Java实体类列表

我使用JETT模板引擎生成报告。JETT模板引擎支持以下输入格式

Map<String, Object> beans = new HashMap<String, Object>();
ValueObject beanName = new ValueObject();
beanName.setProperty("Hello, World!");
beans.put("beanName", beanName);

我试过上面的方法,效果很好。但在本例中,类型对象指的是Java实体类。在这里,我想使用JETT模板引擎生成一个报告,而不使用Java实体类。相反,我直接从JSON字符串创建了一个集合对象。我的收藏对象看起来像:

List<List<Map<String, String>>> packageList = new ArrayList<>();

JETT模板引擎是否支持这种格式?如何在JETT模板中引用地图中的键


共 (1) 个答案

  1. # 1 楼答案

    JETT将支持这个对象,只要您像使用Java实体对象一样将它存储在beans映射中

    beans.put("myPackageList", packageList);
    

    一旦它出现,就可以在JETT标记或表达式中引用"myPackageList"变量

    你可能会想要迭代你拥有的两个列表,这可能会通过一些forEach tags来完成

    一旦到达了操作Map对象的阶段(假设它存储在packageInfo变量中),就可以使用packageInfo.getKeys()对键执行forEach,对于每个键,使用packageInfo.get(key)获取映射中的值。有关JETT中使用的脚本语言语法的更多详细信息,请参阅JEXL