Механизм шаблонов JETT не поддерживает Список коллекций, а поддерживает списки классов Java-сущностей
Я использовал шаблонный движок 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 Template Engine без использования классов Java Entity. Вместо этого я создал объект коллекции непосредственно из строки JSON. Моя коллекция объектов выглядит так:
List<List<Map<String, String>>> packageList = new ArrayList<>();
Будет ли шаблонный движок JETT поддерживать этот формат? Как я могу ссылаться на ключи на карте в шаблоне JETT?
1 ответ
JETT будет поддерживать этот объект до тех пор, пока вы сохраняете его в карте beans, как если бы вы использовали объект сущности Java.
beans.put("myPackageList", packageList);
Как только он появится, вы можете обратиться к "myPackageList"
переменная в ваших тегах JETT или выражении.
Вы, вероятно, захотите перебрать два имеющихся у вас Списка, что, вероятно, будет сделано с некоторыми тегами forEach.
Как только вы достигли стадии, на которой вы управляете объектом Map (скажем, он хранится в packageInfo
переменная), вы можете сделать forEach на клавиши с packageInfo.getKeys()
и для каждого из ключей получите значение на карте с помощью packageInfo.get(key)
, Для получения более подробной информации о синтаксисе языка сценариев, используемого в JETT, вы можете обратиться к JEXL.