2012-10-03 16 views
8

मेरे पास फ़ाइल WebContent/WEB-INF/resources/file/theFile.pdf के अंदर स्थित है, मुझे पता है कि मैं फ़ाइल को कैसे डाउनलोड कर सकता हूं जो एक नियमित डाउनलोड पॉपअप संवाद दिखाएगा या इसे वेबपृष्ठ में प्रस्तुत करेगा (या तो जब तक जाने का सबसे आसान तरीका तब तक होगा) एक पृष्ठ का लिंक? मैं JSF2.0 उपयोग कर रहा हूँ, और वर्तमान में pdf फ़ाइल लेकिन कोई किस्मत डाउनलोड करने के लिए h:outputLink का उपयोग कर, सांत्वना उत्पादन मुझे इस त्रुटि को दिखाने:जेएसएफ 2.0 में डाउनलोड फ़ाइल कैसे बनाएं?

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> 

उत्तर

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> 
संबंधित मुद्दे