AEM - 如何缓存页面范围的模型?

AEM - How to cache model for page scope?

我有一个吊索模型需要在初始化时做一些昂贵的操作。这些与页面范围相关,意味着基于 currentPage 属性。因此,每次页面调用只初始化一次模型是有道理的。

我在 上找到了一篇关于此的不错的文章,他们将 Model-注释的 cache 属性 设置为 true。

但不幸的是,这仅适用于每个资源。

因此设置 cache=true 属性 模型会为通过 data-sly-use 调用它的每个组件进行初始化。它只会帮助我们在同一组件(资源)中调用 data-sly-use,但这没有帮助。

我能否以某种方式为 页面 请求的整个生命周期缓存模型?

SlingHttpServletRequest 是 HttpServletRequest 的包装器,支持 servlet api.

提供的 setAttribute 和 getAttribute 方法

设置属性:

slingRequest.setAttribute(ATTRIBUTE_NAME, myobject);

检索:

//check for null
MyClass myobject = (MyClass) slingRequest.getAttribute(ATTRIBUTE_NAME);