我试图了解AEM吊索资源合并概念。根据Adobe文档示例Override (Configuring your Page Properties),Overlay (Customizing the Consoles (touch-optimized UI))对如何使用它感到困惑,任何人都可以用简单的组件来解释它以更好的方式理解它。
答案 0 :(得分:16)
在这里你会有一个解释
<强>重叠:强>
在AEM中叠加组件意味着将组件从/libs/
文件夹复制到/apps/..
文件夹。您可以在/apps/..
下的新复制组件上强加您自己的定义(如更改标题,组,业务逻辑功能)
根据默认的OSGI首选项,AEM使用搜索路径查找资源,首先搜索/apps/
分支,然后搜索/libs
分支,以便/apps/
下新复制的组件获得优先权而不是/libs/
。
请注意,我们可以通过从Felix console Apache Sling资源解析器工厂 配置更改搜索路径及其优先级顺序来修改搜索路径及其优先级顺序。
您可以尝试覆盖这些libs/foundation/components/
列表,图片,文字和图片,轮播等。简单的组件来玩和更改对话框,jsp级别的功能并查看行为。
当您覆盖组件时,请记住两个组件都可以显示在作者旁边,对于覆盖/apps/..
组件,如果标题componentGroups与/libs/..
组件相同,则在parsys的设计模式中启用组件可以使用组件(foundation) vs (your project)
周围的括号区分它们。
替换:强>
您还可以使用sling:resourceSuperType
属性扩展/覆盖组件行为。
通过创建所有必需节点手动创建自定义组件并将sling:superResourceType
属性的值设置到该组件将继承/libs/
组件的所有功能,即使在升级后仍然继承了图像组件的功能
在这里,我们可以将sling:superResourceType
用于您要继承功能的任何组件(例如,从projectA组件到ProjectB等,不仅限于libs)。
随着新的Granite Touch UI的推出,AEM 6.0版本之后的叠加层存在使用差异,请查看Adobe Documentation
吊索资源合并: 请查看Sling Resource Merger以了解Resource Merger捆绑包概念。它是一个Sling框架包( org.apache.sling.resourcemerger ),它使您可以灵活地在多个其他资源上合并视图。确切的合并机制取决于资源选择器实现(即覆盖或覆盖)。
通过此Sling Resource Merger可以
资源合并提供以下属性来实现上述
sling:hideProperties(String or String []) - 指定要隐藏的属性或属性列表。通配符*隐藏所有属性。
sling:hideResource(Boolean) - 指示是否应完全隐藏资源,包括其子资源。
sling:hideChildren(String或String []) - 包含要隐藏的子节点或子节点列表。将维护节点的属性。 通配符*隐藏所有。
sling:orderBefore(String) - 包含当前节点应位于前面的兄弟节点的名称。
AEM默认安装,您可以使用捆绑符号名称 org.apache.sling.resourcemerger
从您的Felix控制台验证此捆绑包的可用性在AEM中使用Sling Resource Merger的目标是:
让我们转到AEM示例来实现或利用它
目前我将覆盖jcr:title
下/libs/
下的工具相关节点/apps
值
现在,仅在jcr:title
下的覆盖组件节点属性上更新/apps/..
属性
像这样,您可以覆盖lib中的任何组件,并将所需的功能更改更新到该特定节点
让我们看一下sling Resource Merger属性的另一个示例用法
如上所示,我已经覆盖了sites节点以及我添加了jcr:title
的{{1}}属性,如下所示。
现在查看触摸UI页面导航中网站标题的输出。
类似的方式你也可以玩其他属性。的 Hope it helps 强>