Download com JSF

0 respostas
nandobgi

Boa tarde pessoal,

Antes de postar minha dúvida, pesquisei e encontrei várias pessoas com o mesmo problema, mas não encontrei uma solução.
Bem estou tentando fazer download de um arquivo na minha app, na verdade eu tenho um campo String que deverá ser meu arquivo.

Fiz o seguinte código:

FacesContext faces = FacesContext.getCurrentInstance();  
		HttpServletResponse response = (HttpServletResponse)faces.getExternalContext().getResponse();  

		String modelo= "xxxxxxxxxxxxxxxx";
		byte[] bytes = modelo.getBytes();
		
		response.addHeader("Content-Type", "application/force-download");  
		response.setContentType("application/octet-stream");  
		
		OutputStream out;
		try {
			out = response.getOutputStream();
			out.write(bytes, 0 , bytes.length);
			out.flush();
			out.close();
		
		} catch (IOException e) {
			e.printStackTrace();
		}  

		faces.responseComplete();

Quando clico no link.

<a4j:commandLink value="#{msg.btn_download"  action="#{arquivosHandler.downloadXML}" immediate="true"/>

O conteudo da String é exibido em uma outra página, a caixa de donwload não é aberta.

Alguém poderia me ajudar?

Grato

Criado 4 de novembro de 2008
Respostas 0
Participantes 1