Magnolia JCR получает элементы свойств LinkedList

введите здесь описание изображения

Я пытаюсь получить свойство node 0 - значения тега, которое, как я полагаю, является свойством объекта linkedList. как видите, это [****,****]

Я хочу получить значение объекта и сохранить его в объекте List<String>. Поэтому я могу получить каждое значение для позднего использования, например

String idA = "542f74fd-bfaf-4377-854a-8e62082edc6c"; 
string idB = "39aab11f-243f-464c-ae6d-c1f069f17d6c";

Моя попытка выглядит примерно так:

List<String> tagList = new ArrayList<String>();
tagList = componentNode.getProperties(node, "tags");

также пробовал это:

List<String> tagList = new ArrayList<String>();
tagList = PropertyUtil.getProperty(node, "tags");

но ни один из них не работает.

Пожалуйста, предложите мне пример кода. Спасибо


person sefirosu    schedule 08.12.2017    source источник


Ответы (1)


Я считаю, что в JCR они называются многозначными свойствами и поддерживаются через массивы вместо списков.

Я сам не тестировал код, но думаю, что он сработает. Это должно помочь:

  Property property = node.getProperty("tags");     
  Value[] tags = property.getValues();

а затем вы можете преобразовать/обернуть его в список, если вы действительно этого хотите.

Надеюсь, это поможет,

Ваше здоровье,

person Ducaz035    schedule 08.12.2017
comment
еще лучше: List<String> tags = info.magnolia.jcr.util.PropertyUtil.getValuesStringList(node.getProperty("tags").getValues()); - person Jan; 11.12.2017