Как создать Sling Model с несколькими адаптируемыми
@Model
аннотации в моделях строп допускают несколько адаптируемых, например, @Model(adaptables = { SlingHttpServletRequest.class, Resource.class })
Тем не менее, я не уверен, как создать экземпляр модели с несколькими адаптируемыми из JSP. Параметры, показанные в документации Sling, всегда указывают только одну адаптируемую: https://sling.apache.org/documentation/bundles/models.html
1 ответ
Когда ваша модель адаптируется из обоих классов, это означает, что вы можете использовать любой из них, а не то, что вам нужно адаптировать оба.
Таким образом, вы адаптируете его как любую другую модель слинга. Просто это должно работать с обоими. В вашем случае вы могли бы сделать
<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 и т. Д.)