Как импортировать JSP из временного каталога в JSTL - PullRequest
0 голосов
/ 10 сентября 2010

У меня есть динамически генерируемый контент jsp, который я бы хотел (jstl) c:import добавить на другую страницу jsp. В настоящее время у меня есть динамически сгенерированный jsp, записанный в файл во временном каталоге сервлета (javax.servlet.context.tempdir), но я не могу понять, как его импортировать, поскольку он находится вне контекста сервлета. Есть ли способ импортировать jsp из временного каталога сервлета, или я могу каким-то образом предварительно обработать содержимое jsp без необходимости его записи в файл? Ранее я записывал это в файл в контексте сервлета, используя getRealPath(), но, очевидно, он не будет работать во всех развертываниях.

Спасибо за любую помощь!

[update] Хорошо, поэтому я не могу написать файл, кроме как во временном каталоге, и я не могу использовать jsp напрямую из временного каталога. Есть ли способ передать содержимое jsp сервлету jsp по умолчанию напрямую, чтобы получить вывод HTML? Как вы обычно используете динамически генерируемые файлы JSP? Могу ли я реализовать фильтр для передачи содержимого jsp из каталога tempo? Могу ли я переопределить с помощью HttpServletResponseWrapper или что-то еще?

1 Ответ

0 голосов
/ 14 сентября 2010

Этот атрибут контекста имеет тип 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 ...

...