Механизм шаблонов 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.

Другие вопросы по тегам