Как я могу получить ключи объектов из последовательности в freemarker?

У меня есть список объектов, которые возвращаются в виде последовательности, я хотел бы получить ключи каждого объекта, чтобы иметь возможность правильно отображать объект. На данный момент я пробую data?first?keys, который, кажется, получает что-то вроде запросов, которые возвращают объекты (не знаю, как объяснить это последнее предложение, но изображение ниже показывает, что я пытаюсь объяснить ). введите здесь описание изображения

Количество возвращаемых объектов правильное (7), но моя цель - отобразить ключи для каждого объекта. Макрос , который пытается это сделать, находится здесь ( из главы 8 книги по разработке Apache ofbiz).


person Dark Star1    schedule 04.02.2013    source источник
comment
является ли data?first?keys хеш-объектом?   -  person Arun P Johny    schedule 04.02.2013
comment
не знаю. Возможно. Возможно ли, чтобы последовательность состояла из списка хеш-объектов?   -  person Dark Star1    schedule 04.02.2013


Ответы (1)


Похоже, моя последовательность представляет собой список хэшей, как объяснил Даниэль Декани этот пост:

Исходная проблема заключается в том, что someHash[key] ожидает строку в качестве ключа. Потому что хеш-тип FTL по определению сопоставляет ключи string с произвольными значениями. Это не то же самое, что карта Java. (Обратите внимание, что еще больше усложняет ситуацию то, что в FTL someSequenceOrString[index] ожидает целочисленный индекс. Таким образом, для этого тоже используется [] .) Теперь someBeanWrappedMap(key) технически не имеет ничего общего со всеми []-ами. , это просто вызов метода, поэтому он принимает все виды ключей. Если у вас есть карта с нестроковыми ключами, вы должны использовать ее.

Спасибо, D Dekany, если вы в стеке, на этом я закончил полдня, разочаровавшись в шаблоне ftl.

person Dark Star1    schedule 04.02.2013
comment
Обратите внимание, что начиная с 2.3.22 есть ?api для спасения. См. этот ответ или эту запись часто задаваемых вопросов для получения подробной информации. - person ddekany; 01.03.2015