将吊索模型声明为(adaptables = Resource.class)

时间:2019-01-31 06:23:57

标签: aem sling sling-models

在Sling Model中,模型类被注释为 @Model(adaptables = Resource.class)

将参数传递为Adaptables = Resource.class的意义是什么? 如果我不传递任何参数怎么办。 @Model所有参数都接受什么。

1 个答案:

答案 0 :(得分:0)

adaptables属性确定哪些源对象可以适应Sling模型的实现。通常,这是Resource和/或SlingHttpServletRequest,分别表示Sling资源或Sling请求对象。

在最常见的用例中,您可以将默认的适应策略与其他OOTB模型注释结合使用。对于高级情况,您可以实现自己的适配器来控制操作方式。

如果您未指定adaptables类型,那么我不希望模型允许您通过adaptTo()方法实例化它。我怀疑您是否也可以手动实例化它的ModelFactory服务。

有关各种Sling模型注释和选项的详细信息,请查看Sling文档[0],其中包含您需要的几乎所有信息。 ACS AEM样本项目[1]中也有很好的例子。

[0] https://sling.apache.org/documentation/bundles/models.html

[1] https://github.com/Adobe-Consulting-Services/acs-aem-samples/blob/master/bundle/src/main/java/com/adobe/acs/samples/models/SampleSlingModel.java