2012-10-03 3 views
8

WebContent/WEB-INF/resources/file/theFile.pdf 안에 파일이 있는데, 일반 다운로드 팝업 대화 상자를 표시하거나 웹 페이지에서 렌더링하는 방법을 알 수 있습니까 (둘 중 가장 간단한 방법은 사용자가 클릭하면됩니다). 페이지의 링크? 내가 JSF2.0를 사용하여, 현재 pdf 파일하지만 행운을 다운로드 h:outputLink을 사용하고, 콘솔 출력은 날이 오류를 보여JSF 2.0에서 다운로드 파일을 만드는 방법은 무엇입니까?

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

/pages를 제거하고 같은 /resources로 시작하는 JSF를 알 수있는 방법 내 파일은 리소스 폴더 안에있었습니다.

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

답변

10

I have file locate inside WebContent/WEB-INF/resources/file/theFile.pdf

첫째, /WEB-INF (및 /META-INF)의 내용보십시오 공개적으로 사용할 수 없습니다 (:

는 다운로드 코드 web.xml과 같은 민감한 정보, 태그 파일, 템플릿 등을 포함 할 수 있기 때문입니다. 파일을 공개 웹 컨텐츠 외부에 넣으십시오. /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> 

관련없는을 구체적인 문제로 <h:graphicImage>library 속성의 사용량은 이해되지 않는다. 또한 What is the JSF resource library for and how should it be used?

+0

매우 포괄적 인 대답입니다. – huahsin68

+0

당신을 진심으로 환영합니다. – BalusC

3

#{request.contextPath} 접두사 모든

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