Как создать 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 и т. Д.)

Другие вопросы по тегам