星级资源路径的目的是什么?

Tom*_*wek 4 resources sling aem

Adobe AEM parsys组件呈现所有子资源,如果WCM模式设置为适当的值,则显示Drop组件部分,可用于添加新段落.在实施下降成分部分是很奇怪的-这是嵌入式与独立的部件<cq:include> 标签,但路径参数设置为*(星):

<cq:include path="*" resourceType="<%= newType %>"/>
Run Code Online (Sandbox Code Playgroud)

(newType是此行之前设置的Java变量).

这里发生了什么?这颗恒星的目的是什么?

Tom*_*wek 7

Sling 提供了一种自动创建资源名称的方法.如果您向以a结尾的URL发送POST请求/*,则Sling将使用文档中描述的许多规则生成资源名称.

如果您拦截发送到/*servlet或过滤器中的资源的请求并调用该request.getResource()方法,您将获得一个StarResource对象.它扩展了SyntheticResource类型,表示在JCR中没有适当节点的资源.它的资源类型是sling:syntheticStarResource,你可以调用它的getParent()方法,但通常它不是很有用.试图适应它将ValueMap失败.Sling提供了一个帮助方法,用于检查给定的Resource是否为a StarResource.

对于问题中提到的段落系统实现,代码的作者可能希望使用合成资源显示Drop组件,并提供*路径是最简单的方法.您还可以确保资源始终是合成的,因为无法创建具有此名称的节点.