Как импортировать JSP из временного каталога в JSTL
У меня есть динамически сгенерированный JSP-контент, который я хотел бы (JSTL) c:import
на другую страницу JSP. В настоящее время у меня есть динамически сгенерированный jsp, записанный в файл во временном каталоге сервлета (javax.servlet.context.tempdir
), но не могу понять, как я могу импортировать его, поскольку он находится вне контекста сервлета. Есть ли способ импортировать jsp из временного каталога сервлета, или я могу каким-то образом предварительно обработать содержимое jsp без необходимости его записи в файл? Ранее я записал это в файл в контексте сервлета, используя getRealPath()
, но, очевидно, это не будет работать во всех развертываниях.
Спасибо за любую помощь!
[обновление] Хорошо, поэтому я не могу написать файл, кроме как во временном каталоге, и я не могу использовать jsp напрямую из временного каталога. Есть ли способ передать содержимое jsp сервлету jsp по умолчанию напрямую, чтобы получить вывод HTML? Как вы обычно используете динамически генерируемые файлы JSP? Могу ли я реализовать фильтр для передачи содержимого jsp из каталога tempo? Могу ли я переопределить с помощью HttpServletResponseWrapper или что-то?
1 ответ
Этот атрибут контекста имеет тип File
, который обеспечивает toURI
метод. Посмотрите, работает ли что-то подобное:
<%
File tempdir = application.getAttribute("javax.servlet.context.tempdir");
URI tempdirURI = tempdir.toURI();
application.setAttribute("tempdirURI", tempdirURI.toString());
%>
...
<c:import url="${tempdirURI}/path/to/generated.jsp"/>
Если это произойдет, было бы лучше, если бы создание tempdirURI в ServletContextListener
, Или создать функцию EL...