Я работаю на сервлета выполнить некоторую логику специфичной для ResourceType в слинге и установить информацию на запрос, чтобы быть доступными через СПЯ затем переключени запрос СПЯ аналогично к первому решению, представленному в this answer.Перекрытие Sling DefaultGetServlet.java
Вот пример кода, чтобы представить мою ситуацию:
@SlingServlet(
resourceTypes="myapp/components/mycomponent",
methods="GET",
extensions={"html"}
)
...
@Reference
private ServletResolver serlvetResolver;
protected void doGet(....) {
setPropertiesToRequest();
Servlet servlet = servletResolver.resolveServlet(resource, "....jsp");
servlet.service(slingRequest, slingResponse);
clearPropertiesFromRequest();
}
Из-за этого, я заметил, что я потерял Слинг в селектор обработки (я должен был свернуть свою собственную простую версию определить, какой jsp для рендеринга. Full featured sling selector handling is described in more detail here). Я хотел связаться с сообществом переполнения стека и узнать, что еще я могу пропустить, лишив обработчик запроса по умолчанию. Я просмотрел source code, но я думаю, что может быть больше.
Во-вторых, меня бы интересовали мысли о том, как и где этот подход может повлиять на производительность производительность разрешения запроса.
Спасибо, Томас
Благодарим вас за ответ Бертран. Модели Sling выглядят как отличный вариант.Проблема здесь в том, что мы надеялись централизовать нашу логику, в том числе действия, связанные с конкретным компонентом с запросом, в java (вместо того, чтобы определять между различными jsp и настраиваемыми тегами, которые мы определяем). Мы не слишком озабочены обработкой селектора, поскольку мы можем переопределить известные требуемые варианты использования. Я упомянул об этом больше как пример функции, которую мы потеряли при таком подходе. Наша забота заключается в том, что мы упускаем что-то еще. Спасибо, Томас – Thomas