8

内にファイルを見つけWebContent/WEB-INF/resources/file/theFile.pdfました。ユーザーがページ?私はJSF2.0を使用しており、現在h:outputLinkpdfファイルをダウンロードするために使用していますが、うまくいきません。コンソール出力に次のエラーが表示されます。

File not found: /pages/resources/file/theFile.pdf

ファイルがリソースフォルダー内にあったため、JSFにを削除して/pagesから始めるように指示するにはどうすればよいですか。/resources

これはダウンロードコードです:

<h:outputLink value="resources/file/theFile.pdf">
  <h:graphicImage library="images" name="pdf.jpg" style="border:none"/>
</h:outputLink>
4

2 に答える 2

10

内部にファイルがありますWebContent/WEB-INF/resources/file/theFile.pdf

まず第一に、/WEB-INF(および/META-INF)のコンテンツは公開されていませweb.xmlん ( 、タグ ファイル、テンプレートなどの機密情報が含まれている可能性があるため)。ファイルを公開 Web コンテンツの外部 に置きます/WEB-INF

にあると仮定するとWebContent/resources/file/theFile.pdf、次のようにリンクできます。

<h:outputLink value="#{request.contextPath}/resources/file/theFile.pdf">
    <h:graphicImage library="images" name="pdf.jpg" style="border:none"/>
</h:outputLink>

具体的な問題とは関係ありませんが、library属性 onの使用は<h:graphicImage>意味がありません。「 JSF リソース ライブラリの目的と使用方法」も参照してください。

于 2012-10-03T12:40:07.620 に答える
3

#{request.contextPath}接頭辞で試してください

<h:outputLink value="#{request.contextPath}/resources/file/theFile.pdf">
    <h:graphicImage library="images" name="pdf.jpg" style="border:none"/>
</h:outputLink>
于 2012-10-03T06:59:37.420 に答える