2

ダウンロード可能なリンクとして提供される Web アプリケーション内の静的リソースのコンテンツ タイプを設定する方法を見つけようとしています。たとえば、.CSV ファイルがあり、ブラウザでこのリンクを提供すると、クリックすると新しいウィンドウが開きます。私が本当に欲しいのは、1) 自動的にダウンロードするか、2) ブラウザで [開く] または [名前を付けて保存] ダイアログをスローすることです。リンクをレンダリングするために Icefaces を使用していますが、これは問題ではありません。javascript または jquery でプレーンな html を使用できます。これが私のコードです。

<ice:outputLink id="location" value="#{bean.downloadLink}" type="application/x-download" target="_blank">
        <ice:outputText value="Download"/>
</ice:outputLink>

http 応答を介してファイル コンテンツをストリーミングしていないことに注意してください。そうすれば、コンテンツ タイプとコンテンツ処理タグを簡単に設定して、目的を達成できたはずです。私が本当に望んでいるのは、静的リソースを直接リンクとしてレンダリングしながら、これらのヘッダーを設定する方法です。

4

1 に答える 1

3

URL に有効な拡張子を指定し、必要に応じて拡張子を in でコンテンツ タイプに登録<mime-mapping>web.xmlます。

たとえば、使用するコンポーネントに関係なく、最終的に JSF によって生成される次のリンク:

<a href="file.csv">Download</a>

<mime-mapping>
    <extension>csv</extension>
    <mime-type>text/csv</mime-type>
</mime-mapping>

サーブレット コンテナには、デフォルトで、独自のweb.xml、とりわけ CSV に MIME マッピングの完全なリストがすでに含まれていることに注意してください。たとえば、OpenXML Office ドキュメント (docx、xlsx など) と HTML5 画像形式 (SVG) のみを手動で登録する必要があります。

于 2013-04-29T12:22:58.370 に答える