Aem 内容如何遍历并解析到表示层?

How Aem content traversed and get resolved into presentation layer?

任何人都可以向我解释一下 Aem 内容内部会发生什么。它是如何被解析并返回到表示层的?我对内容交付解析之上的 Sling 内部机制更好奇。

这个问题的答案可能会非常详细,因为 "content" 解析和呈现(由表示层)时会发生很多事情。

官方有更详细的解释AEM documentation

它的要点是,Sling 将查看被调用的 URL,并尝试找出 "content"(或更准确地说 "resource")这个 URL 指向存储库中。通常,URL 和资源之间存在一对一的关系。

但这里有点复杂。大多数时候 "resource" 是一个页面。一个页面是由很多更小的部分组成的。这些部分称为 "components"。一个简单的示例是带有博客 post 的页面。您可能有一个组件用于页面的页眉、页脚、导航以及介于两者之间的所有其他内容,例如博客的文本和图像 post。所有这些不同的部分都是组件。

Sling 将找到页面上的所有组件,并单独呈现所有组件以构建页面。大多数组件都有一个 JSP 或 HTL (Sightly) 模板,Sling 使用该模板来呈现组件。另一方面,这些模板可能有自己的内部逻辑,可能会使用 OSGi 服务或 servlet 来构建显示的内容。

这只是一个向您展示其基本工作原理的简单示例。但它在幕后要复杂得多。幕后发生了无数不同的事情,作为开发人员,您可以用来影响这个过程。一个例子是 Sling Filter.