我正在使用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 Entity类来生成报告。相反,我直接从JSON字符串创建了一个收集对象。我的收藏对象看起来像:

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


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

最佳答案

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

beans.put("myPackageList", packageList);


一旦存在,您就可以在JETT标签或表达式中引用"myPackageList"变量。

您可能希望遍历您拥有的两个列表,这可能需要使用某些forEach tags来完成。

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

10-05 18:22