AEM 6.3 - 如何在动态可编辑模板的组件助手中读取设计属性

AEM 6.3 - How to read design properties within component helper for a dynamic editable template

我在页面组件中有一个带有设计对话框的动态可编辑模板。设计属性保存在 /conf/myapp/settings/wcm/policies/myapp 下,如下所示:

我的要求是阅读这些页面级设计属性并在图像组件中使用它们。我在组件级别也有设计对话框。因此,当我执行 ${currentStyle.property} 时,它会呈现组件级设计 属性.

接下来我写了一个这样的助手class:

      Designer designer = currentPage.getContentResource().getResourceResolver().adaptTo(Designer.class);
      Design pageDesign = designer.getDesign(currentPage);
      Style pageStyle = pageDesign.getStyle(pageDesign.getPath());
      return pageStyle.get(PROPERTY_ANALYTICSPAGETYPE, String.class);

此代码试图读取 /etc/designs/myapp 下 cq:designPath 下编写的页面级设计属性,而不是根据 /conf 策略读取。 现在我如何读取 /conf 策略节点并访问这些属性?

如何访问组件内的页面级设计属性?

这应该会给你想要的结果:

ResourceResolver resourceResolver = this.request.getResourceResolver();
  ContentPolicyManager policyManager = (ContentPolicyManager)resourceResolver.adaptTo(ContentPolicyManager.class);
  if (policyManager != null)
  {
    ContentPolicy contentPolicy = policyManager.getPolicy(this.resource);
    if (contentPolicy != null) {
      this.myProperty = ((Boolean)contentPolicy.getProperties().get("myProperty", Boolean.valueOf(false))).booleanValue();
    }