如何实例化具有多个适应性的 Sling 模型

How to instantiate a Sling Model with multiple adaptables

Sling 模型中的 @Model 注释允许多个适应性,例如 @Model(adaptables = { SlingHttpServletRequest.class, Resource.class }) 但是,我不确定如何从 JSP 中实例化具有多个适应性的模型。 Sling 文档中显示的选项始终仅指定单个自适应:https://sling.apache.org/documentation/bundles/models.html#adaptto

当你的模型可以适应两者时 类 这意味着你可以使用它们中的任何一个,而不是你必须适应两者。

因此,您可以将其调整为任何其他吊带型号。只是它应该与两者一起工作。 在你的情况下你可以做

<sling:adaptTo adaptable="${resource}" adaptTo="org.apache.sling.models.it.models.MyModel" var="model"/>

<sling:adaptTo adaptable="${slingRequest}" adaptTo="org.apache.sling.models.it.models.MyModel" var="model"/>

不过,请记住,如果您使用的是注入,则并非所有注入器都适用于两种适配器。请求支持的不仅仅是资源(来自脚本绑定、currentPage 等的任何内容)