Java sling:resourceSuperType如何影响sling分辨率?
嗨,我正在看sling resolution的工作原理 我遇到了Adobe aem开发者指南中提到的这种情况 这就是所提到的情景- / a(没有任何资源超类型或资源类型) b(吊索:resourceSuperType=a) c(吊索:resourceSuperType=b) x(吊索:resourceType=c) y(吊索:resourceType=c,吊索:resourceSuperType=a) /x的类型层次结构为[c,b,a,],而/y的层次结构为[c,a,],因为/y具有sling:resourceSuperType属性,而/x没有,因此其超类型取自其资源类型 现在我了解了/x是如何解析的。但我不确定你的情况。首先,它决定采用/c。它本身有一个吊索:resourceSuperType作为b。如果吊索分辨率也不转到/b。如何覆盖超类型并将资源解析为a而不是b。如中所述,如果为特定资源定义了Java sling:resourceSuperType如何影响sling分辨率?,java,aem,sling,Java,Aem,Sling,嗨,我正在看sling resolution的工作原理 我遇到了Adobe aem开发者指南中提到的这种情况 这就是所提到的情景- / a(没有任何资源超类型或资源类型) b(吊索:resourceSuperType=a) c(吊索:resourceSuperType=b) x(吊索:resourceType=c) y(吊索:resourceType=c,吊索:resourceSuperType=a) /x的类型层次结构为[c,b,a,],而/y的层次结构为[c,a,],因为/y具有sling
sling:resourceSuperType
,则将使用它。如果它不存在,框架将使用由sling:resourceType
指向的资源定义的sling:resourceType
也就是说,在/y
的情况下,/b
将不会被视为超级类型。由/y
本身定义的sling:resourceSuperType
直接指向/a
。它将有效地隐藏在/c
(并指向/b
)处定义的sling:resourceSuperType
属性,否则将考虑该属性
这个例子在你链接到的网站上有很好的描述
根据我的经验,如果资源类型层次结构是由一组定义组件的节点定义的,并且在存储库中作为
/apps
或/libs
的后代(在继承层次结构中包括OOTB组件时),则大多数自定义AEM组件更易于维护。/content
子树中存在的组件(包括负责呈现整个页面的组件)的特定实例可以明确定义一个决定其类型(继承与否)的sling:resourceType
。就我个人而言,我不喜欢在属于/content
子树的资源级别上定义sling:superResourceType
,因为它使层次结构更难以推理。在我脑海中,我想不出一个用例可以证明这种权衡。如果其他人知道一个好的,也许他们可以加入进来 非常感谢你。我看了n遍,读了几行,但实际上无法处理那里写的内容。我对它的工作原理也有同样的想法,但实际上我想确定。非常感谢您的详细解释。我们也遵循您建议的相同结构。我之所以这么说,是因为我一直认为一旦找到resource:type,它就会忽略resourceSuperType,因为前者的优先级高于后者。很明显,我错了,然后有人指出了这个例子,这需要我理解这到底是怎么发生的