2012-10-03 26 views
8

Tengo el archivo localizar dentro de WebContent/WEB-INF/resources/file/theFile.pdf, puedo saber cómo puedo descargar el archivo que mostrará un cuadro de diálogo emergente de descarga regular o presentarlo en la página web (cualquiera de ellas hará tanto como la forma más sencilla de hacerlo) cuando el usuario haga clic en el enlace de una página? Estoy usando JSF2.0, y en la actualidad el uso de h:outputLink para descargar el archivo PDF, pero sin suerte, la salida de la consola me muestra este error:¿Cómo hacer un archivo de descarga en JSF 2.0?

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

¿Cómo puede decir JSF para eliminar el /pages y comenzar con la /resources como mi el archivo estaba dentro de la carpeta de recursos.

Este es el código de descarga:

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

Respuesta

10

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

En primer lugar, el contenido de /WEB-INF (y /META-INF) es no a disposición del público (ya que pueden contener información confidencial como web.xml, archivos de etiquetas, plantillas, etc.). Coloque el archivo en el contenido web público fuera de/WEB-INF.

Suponiendo que se encuentra ahora en WebContent/resources/file/theFile.pdf, entonces se puede enlazar con él de la siguiente manera:

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

Sin relación al problema concreto, el uso de library atributo en <h:graphicImage> no tiene sentido. Consulte también What is the JSF resource library for and how should it be used?

+0

Una respuesta muy completa. – huahsin68

+0

De nada. – BalusC

3

intento con #{request.contextPath} prefijo

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