JSF baixando arquivo gerado pelo bean

Considerando que o bean esteja registrado e na página tenha um botão chamando a ação “download”

No exemplo abaixo será gerado um arquivo TXT que será disponibilizado para download.

public void download() throws IOException {
    //Pega a instancia 
    FacesContext fc = FacesContext.getCurrentInstance();

    //Pega o contexto de resposta
    HttpServletResponse ec = (HttpServletResponse) fc.getExternalContext().getResponse();

    //Zerando qualquer coisa que possa ter sido colocada na resposta
    ec.reset();
    
    //Colocando o tipo do arquivo, procure na internet os tipos disponiveis, no tipo abaixo será para TXT
    ec.setContentType("text/plain"); 
    
    //Caso queira mostrar o tamanho do download, setar o tamanho abaixo
    //ec.setContentLength(contentLength); 

    //Coloca o nome do arquivo
    ec.setHeader("Content-Disposition", "attachment; filename=\"Arquivo.txt\""); 

    //Pega o output para escrever no arquivo
    OutputStream output = ec.getOutputStream();   
 
    //Escrevendo TESTE
    output.write("teste".getBytes());

    //Para finalizar o processo
    output.flush();
    output.close();
    fc.responseComplete(); 
}

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Blue Captcha Image
Atualizar

*

Facebook

Get the Facebook Likebox Slider Pro for WordPress
WordPress SEO fine-tune by Meta SEO Pack from Poradnik Webmastera