3

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

4

1 回答 1

2

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

因此,您可以像任何其他 Sling 模型一样对其进行调整。只是它应该适用于两者。在你的情况下你可以做

<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 等的任何内容)

于 2015-06-15T15:05:33.993 回答