Quando si inviano dati grezzi al browser utilizzando JSF, è necessario estrarre lo HttpServletResponse
dallo FacesContext
.
Utilizzando lo HttpServletResponse
, è possibile inviare dati grezzi al browser utilizzando l'API IO standard.
Ecco un esempio di codice:
public String getFile() {
byte[] pdfData = ...
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
OutputStream out = response.getOutputStream();
// Send data to out (ie, out.write(pdfData)).
}
Inoltre, qui ci sono alcune altre cose che si potrebbe prendere in considerazione:
- impostare il tipo di contenuto del HttpServletResponse di informare il browser che sei invio di dati PDF: response.setContentType ("application/pdf");
- Informa FacesContext che hai inviato i dati direttamente all'utente, utilizzando il metodo context.responseComplete(). Ciò impedisce a JSF di eseguire un'ulteriore elaborazione che non è necessaria.
fonte
2010-08-28 19:32:04
Grazie mille :), tuttavia non posso votare (reputazione). – marioosh
Grazie per questo post. –
Appena trovato ciò che è necessario. Grazie. – user