0

c:import別の jsp ページに (jstl) したい動的に生成された jsp コンテンツがあります。現在、動的に生成された JSP をサーブレットの一時ディレクトリ ( javax.servlet.context.tempdir) 内のファイルに書き込んでいますが、サーブレット コンテキストの外にあるため、それをインポートする方法がわかりません。サーブレットの一時ディレクトリから jsp をインポートする方法はありますか、それともファイルに書き込まずに jsp コンテンツを前処理することはできますか? 以前は、これを を使用してサーブレット コンテキストのファイルに書き込んでいましたgetRealPath()が、明らかにすべての展開で機能するとは限りません。

助けてくれてありがとう!

[更新] 一時ディレクトリ以外にファイルを書き込むことはできず、一時ディレクトリから直接 jsp を使用することはできません。HTML出力を取得するためにjspコンテンツをデフォルトのjspサーブレットに直接渡す方法はありますか? 動的に生成された jsp ファイルを通常どのように使用しますか? tempo ディレクトリから jsp コンテンツを渡すフィルタを実装できますか? HttpServletResponseWrapper などでオーバーライドできますか?

4

1 に答える 1

0

そのコンテキスト属性はタイプ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 に答える