【问题标题】:What is the significance of declaring a sling model as (adaptables = Resource.class)将 sling 模型声明为 (adaptables = Resource.class) 有什么意义
【发布时间】:2019-01-31 06:23:57
【问题描述】:

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

传递参数作为adaptables = Resource.class有什么意义。 如果我不传递任何参数怎么办。所有参数@Model 接受什么。

【问题讨论】:

  • 分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: aem sling sling-models


【解决方案1】:

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

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

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

有关各种 Sling 模型注释和选项的详细信息,请查看 Sling 文档 [0],其中包含您应该需要的所有信息。 ACS AEM Samples 项目 [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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 2016-12-09
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    相关资源
    最近更新 更多