Artigo Java Magazine 56 - Integrando Struts2 com JasperReports

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Saiba como combinar o Struts2 com o JasperReports para criar relatórios de maneira eficaz e inteligente para aplicações web.

Esse artigo faz parte da revista Java Magazine edição 56. Clique aqui para ler todos os artigos desta edição

Integrando Struts2 com JasperReports

Criando relatórios para web usando recursos MVC

Como combinar o Struts2 com o JasperReports para criar relatórios de maneira eficaz e inteligente para aplicações web

Uma das grandes necessidades do desenvolvimento web é a criação e disponibilização de relatórios através de uma forma produtiva e escalável. Baseado nessa necessidade, esse artigo mostra de forma prática como você poderá usar para aplicações web baseadas em Java os recursos do Struts2 e do JasperReports, duas grandes ferramentas open-source, que quando integradas, oferecem muita facilidade e eficácia na criação de aplicações web com relatórios.

Além das vantagens da arquitetura MVC (Model View Controller) que veremos mais adiante, um dos maiores ganhos que essa solução oferece é a possibilidade de criar relatórios sem acesso direto ao banco de dados, eliminando assim, o uso de SQL nos fontes dos relatórios. Essa responsabilidade é delegada para a camada de persistência, ou seja, fornecendo listas de objetos de algum tipo classe de domínio (POJOs) para que o relatório seja renderizado durante sua execução.

Quem é quem?

Este artigo presume alguma vivência tanto com desenvolvimento web usando algum framework MVC e também alguma experiência com criação de relatórios usando o iReport e JasperReports. Mas para nivelamento, vamos revisitar alguns conceitos. Começaremos pelo Struts2, que é um dos mais populares frameworks MVC para o desenvolvimento web, que após sua fusão com o projeto Webwork, ganhou ótimas melhorias nos recursos de controlador de fluxo de navegação, actions, validações, plugins, tags, templates, recursos AJAX, etc.

Já o JasperReports é um projeto open-source de singular sucesso, permitindo gerar relatórios em vários formatos; com agrupamentos, fórmulas, parâmetros, gráficos, sub-relatórios, crosstables, figuras, sub-datasets; várias origens de dados como: SQL, coleções, EJBs, arquivos XML; além de outras funcionalidades bem interessantes. 

É importante lembrar que o JasperReports é uma API para renderizar esses relatórios, mas para ser realmente produtivo com o mesmo, será necessário usar alguma IDE específica para criação e alteração de relatórios. Neste caso, iremos usar o iReport, que é um projeto ligado ao próprio JasperReports e tem uma grande aceitação no mercado. 

Veja na Figura 1 o funcionamento de uma aplicação combinando os componentes básicos do Struts2 com os componentes do JasperReports. Observe que o controlador do Struts irá interceptar uma requisição HTTP, tratar em qual classe Action será criado um objeto do tipo List com base em uma estrutura de JavaBean e DAO (Data Acces Object).  Em seguida, o mesmo controlador irá usar o arquivo .jasper, que contém o relatório compilado do JasperReports, para devolver ao navegador, uma resposta HTTP contendo o relatório renderizado em PDF.

 

Figura 1. Arquitetura usada em aplicações com Struts2 e JasperReports

O Mágico de Oz (Ou: o homem por de trás da cortina)

Você pode estar se perguntando: como integrar o Struts2 com o JasperReports? O responsável por esse trabalho é um plugin do próprio projeto Struts2, chamado struts2-jasperreports-plugin. Veja que na seção “Ferramentas”, ele está listado como uma biblioteca a ser adicionada no projeto e mais à frente, será necessário configurar o mesmo no arquivo struts.xml, como você poderá conferir no tópico “Criando e configurando o arquivo struts.xml”.

Ferramentas

É importante observar que para criar a aplicação de exemplo, iremos precisar dos arquivos jar (bibliotecas) listados na Tabela 1. Para baixar esses itens, veja a seção Links no final do artigo.

 

Para o Struts2

Para o JasperReports

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?