Jasper + java

Boa noite,

estou com meu sistema pronto, agora quero fazer as partes de relatorios.

consegui mexer perfeito no jasper criei a base dos relatorios.
mas como faço para o botão imprimir do meu sistema jogar para o relatorio feito em jasper?

desculpe se a pergunta é tola mas estou aprendendo tudo sozinho.

Faço assim, deve ter outros melhores mas…

página:

<h:form id="formPrincipal"> <p:fieldset legend="Relatório"> <p:commandButton value="Imprimir" ajax="false" actionListener="#{cargoBean.relatorioGeral}" onclick="this.form.target='_blank'"/> </p:fieldset> </h:form>

método no MB:

public void relatorioGeral() throws IOException { InterfaceDAO<Cidade> dao = new HibernateDAO<Cidade>(Cidade.class, FacesContextUtil.getRequestSession()); List<Cidade> listas = new ArrayList<Cidade>(); listas = dao.getBeans(); JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listas); Map<Object,Object> parameters = new HashMap<Object, Object>(); try { FacesContext facesContext = FacesContext.getCurrentInstance(); facesContext.responseComplete(); ServletContext scontext = (ServletContext) facesContext.getExternalContext().getContext(); String logoStudio = FacesContext.getCurrentInstance().getExternalContext().getRealPath("images/Studio.png"); parameters.put("logoStudio", logoStudio); JasperPrint jasperPrint = JasperFillManager.fillReport(scontext.getRealPath("jasper/relatorioCidade.jasper"), parameters, ds); ByteArrayOutputStream baos = new ByteArrayOutputStream(); JRPdfExporter exporter = new JRPdfExporter(); exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint); exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, baos); exporter.exportReport(); byte[] bytes = baos.toByteArray(); if (bytes != null && bytes.length > 0) { HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse(); response.setContentType("application/pdf"); response.setHeader("Content-disposition", "inline; filename=\"relatorioCidades.pdf\""); response.setContentLength(bytes.length); ServletOutputStream outputStream = response.getOutputStream(); outputStream.write(bytes, 0, bytes.length); outputStream.flush(); outputStream.close(); } } catch (Exception e) { e.printStackTrace(); } }

Veja esse tutorial, objetivo e simples.

http://www.k19.com.br/artigos/relatorios-em-java-jasperreports-e-irepor/

Abraços.

Fica com DEUS.