如何实例化具有多个适应性的 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 等的任何内容)
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 等的任何内容)