Colegas,
O metodo abaixo tem só as partes relevantes para esclarecimento da minha dúvida:
Bom, basicamente quero imprimir um pdf (o que está fazendo corretamente).
Aí qdo eu clico no botão voltar (o pdf é aberto em outra página) quero que esse método execute o return para a action especificada,
porém ele não o faz.
O que eu devo fazer?
Muito obrigado,
Marques
public ActionForward imprimePalletsEmbarque(ActionMapping mapping,
ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws Exception {
DynaValidatorForm formBean = (DynaValidatorForm) form;
ActionMessages mensagens = new ActionMessages();
HttpSession session = request.getSession();
ServletContext context = session.getServletContext();
byte[] bytes = null;
try {
JasperReport relatorioJasper = null;
relatorioJasper = (JasperReport) JRLoader.loadObject(context.getRealPath("/reports/RomaneioSeparacao.jasper"));
Map parametros = new HashMap();
parametros.put("nomeFantasia", "teste");
JRBeanArrayDataSource ds = new JRBeanArrayDataSource(aList.toArray());
bytes = JasperRunManager.runReportToPdf(relatorioJasper, parametros, ds);
parametros = null;
} catch (JRException e) {
e.printStackTrace();
}
if (bytes != null && bytes.length > 0 && mensagens.isEmpty()) {
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
}
return (!mensagens.isEmpty() ? mapping.findForward("falha") : mapping.findForward("exibirPalletsAction"));
}