1

通常の結果タイプを使用して、Struts2 アクション (jsp を処理した後の最終的な HTML) から生成された HTML をダウンロードする方法があるかどうかを知りたいです。ページを表示するのではなく、ダウンロードしたい。

私が試したこと:

<result name="success" type="stream">
   <param name="location">/jsp/dummy.jsp</param>
   <param name="contentType">application/text</param>
   <param name="contentDisposition">attachment; filename="page.html"</param>
</result>

次のようなものは使いたくない:

UrlReader.read("generateHTMLAction")

エンコーディングの問題があるため、それを入力ストリームに入れます。どんなアイデアも高く評価されます。みんなありがとう。

4

2 に答える 2

1

返された応答の処理は、ほとんどの場合、HTTPヘッダーと、それらがブラウザーによってどのように解釈されるかによって決まります。したがって、私が知る限り、標準のディスパッチャ結果タイプとJSPを使用できます。JSPディレクティブを使用して、適切なHTTPヘッダーを設定し、ブラウザーが任意の方法で応答ペイロードを処理できるようにすることができます。

于 2012-11-28T20:30:37.650 に答える
0

これが達成できるかどうか、またはどのように達成できるかはわかりません。

私があなたに言えることは、次のことです。

  • ここにはパラメータは存在しません: Stream typelocationからではなく、他の結果タイプ (DispatchResult、FreeMarker など) からのものです。いい試みですが、Struts2 の結果の型の中には、ニーズに合ったすぐに使えるものはないと確信しています。

  • 機能を使用することはできませんInterceptor's PreResultListener。これは、最終的な結果で機能しますが、レンダリングされる前にインターセプターから完全に飛び降りるためです。

    私の2セント:

    プログラムではなくデバッグ目的でこれを行いたい場合、実際の問題はView Source、ブラウザーの解析によって結果が既に「汚染」されているため、ブラウザーの機能を使用できないことです。その場合、PlainText結果の型を使用してみてください。 (テストされていません。これは単なるアイデアです。使用したことはありません)、最終的に を設定する JSP の生のコンテンツを取得charSetし、適切なエディター(Eclipse、Notepad++ など)で生の JSP を読み取ります。

于 2012-11-28T15:35:33.437 に答える