Olá amigos!
Estou com um problema que é o seguintes tenho um botão exportar na minha tela que vai gerar um arquivo excel, quando este botão é clicado ele passa por uma action e seta um atributo como OK e no meu jsp (estou usando struts) vejo se o valor desse atributo é igual a OK e então chamo uma função javascript que vai submeter um form que está mapeado para passar num servlet e esse servlet vai fazer a exportação de fato:
codigo no jsp:
<logic:equal value="OK" name="flgExportarPD1031" scope="request">
<script language="JavaScript">
gerarArquivo();
</script>
</logic:equal>
codigo no servlet que vai exportar:
// Altera o cabeçalho HTML
response.setContentType("application/octet-stream");
response.setHeader("Pragma", "");
response.setHeader("Cache-Control", "");
response.setHeader("Expires", "");
response.setHeader("Content-Disposition", "attachment; filename=" + hmArquivo.get("NOME"));
//response.setHeader("Accept-Charset","ISO-8859-5");
response.setContentLength(((byte[]) ((String)hmArquivo.get("ARQUIVO")).getBytes()).length);
// Grava o array de bytes do documento no response
response.getOutputStream().write(((byte[]) ((String)hmArquivo.get("ARQUIVO")).getBytes()));
response.getOutputStream().flush();
O problema que estou achando que acontece é que ele não chega a renderizar a tela toda e já começa a executar o servlet e esse servlet meche no response alterando algumas coisas e não consigo da um sendRediretc ali dentro ou um requestDispatcher, alguém teria alguma idéia ou alguém já teve esse problema e conseguiu solucionar?
Obrigado a todos!