如何在cq

时间:2015-11-19 06:11:22

标签: cq5 aem

我想从源节点获取一些属性使用另一个目标节点中的getProperties()和setProperty。我如何检查该属性是否受到保护。如果我复制目的地中的所有属性,它会给我ConstraintViolationException

2 个答案:

答案 0 :(得分:0)

您需要获取该属性的定义:

PropertyDefinition propDefinition = node.getProperty("/yourprop").getDefinition();

关于你可以调用的定义是isProtected():

Boolean isPropertyProtected = propDefinition.isProtected();

或者只是内联它:

node.getProperty("/yourprop").getDefinition().isProtected();

进一步阅读我建议: http://www.day.com/specs/jcr/2.0/16_Access_Control_Management.html; 第16.3.12节与受保护属性的交互

关于节点类型的JCR文档: http://jackrabbit.apache.org/jcr/node-types.html

答案 1 :(得分:-1)

这可能是因为您正在尝试复制包含cq:primaryType的所有属性。如果您在crx中看到,这些基本属性是不可编辑的。

对于副本,您可以获取特定属性并设置特定属性,而不是复制和粘贴所有属性。