Magnolia JCR 获取 LinkedList 属性项
Posted
技术标签:
【中文标题】Magnolia JCR 获取 LinkedList 属性项【英文标题】:Magnolia JCR get LinkedList Property Items 【发布时间】:2017-12-08 12:59:30 【问题描述】:我正在尝试检索节点 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");
但它们都不起作用。
请向我推荐代码示例。 谢谢
【问题讨论】:
【参考方案1】:我相信它们在 JCR 中被称为多值属性,并且通过数组而不是列表来支持。
我自己没有测试过代码,但我相信它会起作用。 这应该可以解决问题:
Property property = node.getProperty("tags");
Value[] tags = property.getValues();
如果你真的想的话,你可以将它转换/包装成 List。
希望对你有帮助,
干杯,
【讨论】:
更好:List<String> tags = info.magnolia.jcr.util.PropertyUtil.getValuesStringList(node.getProperty("tags").getValues());
以上是关于Magnolia JCR 获取 LinkedList 属性项的主要内容,如果未能解决你的问题,请参考以下文章
Magnolia JCR 获取 LinkedList 属性项
在我的 Spring MVC Magnolia 模块中获取 JCR Session 对象的更好方法是 LifeTimeJCRSessionUtil
将 JCR 节点转换为 Vaadin 项目 (Magnolia)
检索并分配 jcr:mixinTypes magnolia 中的多值属性