Si se trata de un simple archivo, basta con colocar en webcontent pública (hay donde poner los archivos estáticos y JSF) y crear un enlace.
<h:outputLink value="/files/file.ext">link</h:outputLink>
El servletcontainer se preocupará por aplicar los encabezados correctos.
Si se encuentra fuera de la webcontent pública por algunas razones específicas (por ejemplo, en una trayectoria fija en la máquina servidor, o en una base de datos), a continuación, crear un servlet que recibe un InputStream
de él y lo escribe en el OutputStream
de la respuesta a lo largo de al menos los encabezados Content-Type
, Content-Disposition
y Content-Length
. Puede encontrar here un simple ejemplo de patada inicial. Además, eso simplemente se puede vincular en el servlet url-pattern
.
Si se trata de ser generado de forma dinámica y en función de los parámetros de la petición específica JSF, a continuación, puede también hacerlo en una acción bean gestionado que está obligado por h:commandLink
o h:commandButton
, pero sólo se necesitará asegurarse de que usted llama FacesContext#responseComplete()
al final del método de acción del frijol para evitar que JSF tome la navegación en las manos. El mismo tipo de código de servlet puede reutilizarse para transmitir el archivo. Puede encontrar un ejemplo de kickoff en this answer.
Oo Thx BalusC no pude conectar en todo el fin de semana, pero tengo que agradecerte toda tu ayuda = D Realmente aprecio – ErVeY
De nada. – BalusC