2

我有一个 sling-model 需要在初始化时执行一些昂贵的操作。这些与页面范围有关,含义基于currentPage属性。因此,每个页面调用只初始化一次模型是有意义的。

我发现了一篇很好的文章,关于如何只在他们将-annotation的cache属性设置为 true 时调用 sling 模型。Model

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

因此,cache=true为每个通过data-sly-use. 它只有助于wenn 调用data-sly-use同一个组件(资源),但这并没有帮助。

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

4

1 回答 1

1

SlingHttpServletRequest是 HttpServletRequest 的包装器,支持 servlet api 提供的 setAttribute 和 getAttribute 方法。

设置属性:

slingRequest.setAttribute(ATTRIBUTE_NAME, myobject);

取回:

//check for null
MyClass myobject = (MyClass) slingRequest.getAttribute(ATTRIBUTE_NAME);
于 2019-08-23T06:02:40.793 回答