В CQ нам нужно обработать jsp внутри сервлета, а затем объединить результат с другими результатами, которые мы получаем с сервера, прежде чем писать обратно в браузер.Получить JSP-выход в Servlet в AEM
Следующий код - это почти то, что нам нужно, за исключением того, что он возвращает результат в браузер после обработки jsp.
RequestDispatcher dispatcher = request.getRequestDispatcher(resource);
dispatcher.forward(request, response);
Мы попытались использовать макет ответ следующим образом:
RequestData requestData = new RequestData(slingRequestProcessor, request, mockResponse);
SlingHttpServletRequest slingRequest = requestData.getSlingRequest();
SlingHttpServletResponse slingResponse = requestData.getSlingResponse();
RequestDispatcher dispatcher = request.getRequestDispatcher(resource);
dispatcher.forward(slingRequest, slingResponse);
но мы получаем вопросы.
Я думаю, вам нужно будет использовать [SlingHttpServletResponseWrapper] (http://docs.adobe.com/docs/en/cq/ 5-6/javadoc/org/apache/sling/api/wrappers/SlingHttpServletResponseWrapper.html), чтобы предотвратить прямой возврат в браузер. – Thomas