0

我有一些动态生成的 jsp 内容我想(jstl)c:import到另一个 jsp 页面。目前,我将动态生成的 jsp 写入 servlet 临时目录 ( javax.servlet.context.tempdir) 中的文件,但由于它位于 servlet 上下文之外,因此无法确定如何导入它。有没有办法从 servlet 临时目录导入 jsp,或者我可以以某种方式预处理 jsp 内容而不必将其写入文件?以前我使用 将它写入 servlet 上下文中的文件getRealPath(),但显然它不适用于所有部署。

谢谢你的帮助!

[更新] 好的,所以我不能在临时目录下写文件,也不能直接从临时目录使用jsp。有没有办法将 jsp 内容直接传递给默认的 jsp servlet 以获取 HTML 输出?您通常如何使用动态生成的 jsp 文件?我可以实现一个过滤器来传递 tempo 目录中的 jsp 内容吗?我可以用 HttpServletResponseWrapper 或其他东西覆盖吗?

4

1 回答 1

0

该上下文属性是 type 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 函数...

于 2010-09-14T16:52:30.253 回答