Galera seguinte estou usando o modo designer do netbeans para fazer meu layout mas eu preciso saber como fazer com que um button quando clicado apresente a tela de download. O arquivo que eu preciso oferecer para download é um pdf.
VocÊ pode usar a seguinte classe para fazer download de arquivos:
aí no seu método: BT_PDF_action() basta você chamar OperacoesArquivos.downloadFile(…);
Espero ter ajudado
Att
importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.OutputStream;importjavax.faces.context.ExternalContext;importjavax.faces.context.FacesContext;importjavax.servlet.http.HttpServletResponse;publicclassOperacoesArquivos{publicstaticsynchronizedvoiddownloadFile(Stringfilename,StringfileLocation,StringmimeType,FacesContextfacesContext){ExternalContextcontext=facesContext.getExternalContext();// Context Stringpath=fileLocation;// Localizacao do arquivo StringfullFileName=path+filename;Filefile=newFile(path);// Objeto arquivo mesmo :) HttpServletResponseresponse=(HttpServletResponse)context.getResponse();response.setHeader("Content-Disposition","attachment;filename=\""+filename+"\"");//aki eu seto o header e o nome q vai aparecer na hr do donwload response.setContentLength((int)file.length());// O tamanho do arquivo response.setContentType(mimeType);// e obviamente o tipo try{FileInputStreamin=newFileInputStream(file);OutputStreamout=response.getOutputStream();byte[]buf=newbyte[(int)file.length()];intcount;while((count=in.read(buf))>=0){out.write(buf,0,count);}in.close();out.flush();out.close();facesContext.responseComplete();}catch(IOExceptionex){System.out.println("Error in downloadFile: "+ex.getMessage());ex.printStackTrace();}}}
marcoamv3000
Sou novo em java e não entendi bem os parametros principalmente o FacesContext:
Você pode poderia me passar um exemplo de chamada…
FacesContext representa o contexto de processamento de uma requisição dentro do JSF e fornece acesso ao ambiente de aplicação web através de um ExternalContext.