Artigo Java Magazine 56 - Integrando Struts2 com JasperReports

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

Clique aqui para ler esse artigo em PDF.

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" [...] continue lendo...

Artigos relacionados