Базовая настройка сервлета JSP, с которой я знаком ....
RequestDispatcher dispatcher = request.getRequestDispatcher(resourceA.jsp);
dispatcher.forward(request, response);
Проблема в том, что помимо отправки ответа обратно в браузер (resourceA.jsp) мне нужно создать
второй вывод HTML из resourceB.jsp, который, в свою очередь, будет отправлен по электронной почте или использован для создания PDF-документа.
Это делается не каждый раз, просто в определенных условиях и по телефону
dispatcher.forward(request, response);
во второй раз я получаю и IllegalArgumentException .
Мне просто нужен способ генерации HTML из jsp (, в основном заменяющий значения $ {par} ) и
возвращая html в виде String, без кода состояния или заголовков, просто html и A не имеют ничего общего с B, поэтому фильтры не будут работать.
------ повторить в первый ответ ----- комментарий к маленькому --- без форматирования
Я не понимаю, почему это так сложно ....
все магния есть для объединения данных с содержимым HTML в
${par}
${par['key']}
<c:if test="${patBoolean}" >
<c:forEach var="pvar" varStatus="s_pvar" items="${parList}">
Я даже создал оболочку для маскировки getOutputStream () и getWriter (), создав собственный PrintWriter
public class ResponseWrapper extends HttpServletResponseWrapper{
private PrintWriter printWriter;
public ResponseWrapper(HttpServletResponse response){
super(response);
}
public ServletOutputStream getOutputStream() throws java.io.IOException{....}
public PrintWriter getWriter() throws java.io.IOException {....}
}
в получении результата для resourceB.jsp, но проблема в dispatcher.forward (запрос, ответ)
устанавливает isCommitted некоторые изделия в оригинальном HttpServletResponse.