了解当前资源的当前位置

时间:2014-01-14 20:06:40

标签: adobe cq5 aem crx

我正在接受Adobe CQ5开发人员的培训,我正在尝试了解组件中当前资源的位置。例如,在为图像组件创建窗口小部件时: enter image description here 属性为: The Properties are:

然后是一个复杂的组件:

enter image description here 属性为: The properties are:

这是为什么?我只是没有看到与当前资源和jsp文件的关系以供参考。为什么复杂的组件不能只有./value而不是./image/value?

1 个答案:

答案 0 :(得分:1)

主要原因是属性彼此相关以定义如何绘制图像,并且应用程序的其他部分期望这种安排。当作者配置图像时,AEM将在页面的jcr:content节点下创建一个图像节点。

/content/mysite/mypage/jcr:content/image/<attributes>

基础Image类以及AbstractImageServlet期望某些属性显示在图像节点上。

例如,请注意这两个URL显示相同的图像。

 1. http://localhost:4502/content/geometrixx/en/events/dsc.img.png
 2. http://localhost:4502/content/dam/geometrixx/banners/dsc.jpg

第一个URL指向cq:page节点并添加img选择器。此选择器调用一个servlet,该servlet从页面的image节点下找到的第一个jcr:content节点提取信息。该image节点具有指向实际DAM图像的fileReference属性,该图像是第二个URL。然后,servlet呈现fileReference属性中指定的URL。

在第一个示例中 - 徽标组件 - 属性与组件相关。如果您在路径par的页面上有一个解析,那么如果您将徽标组件添加到页面,那么您的cq:page节点下将有以下路径。

/content/mysite/mypage/jcr:content/par/logo/<attributes>

现在,当您使用img选择器调用图像servlet时,它会考虑徽标的属性。

http://localhost:4502/content/mysite/mypage/jcr:content/par/logo.img.png

对于第二个示例 - 复杂组件 - 您要在image节点下组织图像属性,以将这些属性与其他设置隔离开来。