0

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

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

我已经尝试了上述方法,并且工作正常。但在这种情况下,类型 Object 指的是 Java Entity 类。在这里,我想使用 JETT 模板引擎生成报告,而不使用 Java 实体类。相反,我直接从 JSON 字符串创建了一个集合对象。我的 Collection 对象如下所示:

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

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

4

1 回答 1

1

只要您像使用 Java 实体对象一样将其存储在 beans Map 中,JETT 就会支持该对象。

beans.put("myPackageList", packageList);

一旦它在那里,您可以在 JETT 标记或表达式中引用该"myPackageList"变量。

您可能希望遍历您拥有的两个列表,这可能会使用一些forEach 标记来完成。

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

于 2018-02-13T08:47:47.787 回答