Struts 2 + jasper

11 respostas
jjose

No meu relatorio jasper tem uma query sql esperando apenas a connection e o id do usuario, preciso enviar a conexao e o id mas tudo que eu vj sobre struts 2 com jasper é enviando uma lista de Bean.

Alguem poderia me dar um help?

11 Respostas

jyoshiriro

A partir da versão 2.1.8 é possivel passar apenas a conexão JDBC para o jasper:
http://struts.apache.org/2.1.8/docs/jasperreports-plugin.html

Espero que ajude.

jjose

Ja tentei, estou com os jars do strust 2.1.8

Eu tive o seguinte entendimento desse doc

struts.xml

<result name="success" type="jasper">
  <param name="location">relatorio.jasper</param>
  <param name="dataSource">parametros</param>
  <param name="connection">conexao</param>
</result>

classe do relatorio

public Connection getConexao() { return conexao; } // Conexao 100%

[color=red]Não funciona[/color], se eu coloco esse parametro nem retorna erros no console mas piora, o relatorio fico tudo em braco como se nao tivesse nada, se eu tiro fica os campos ficam null

jyoshiriro

Eu já fiz e funcionou normalmente.

Seu objeto de conxao não está chegando null no getConexao()?

Qual o erro que aparece?

jjose

Fez da maneira que eu postei ?

Conexao esta ativa

jyoshiriro

A unica diferença é que no meu está

public Connection getConexao() { return session.connection(); // sessão hibernate core }

Qual o erro que aparece pra você?

jjose

Nenhum porem, o relatorio fica completamente em branco…

jyoshiriro

Os parâmetros usados realmente geram alguma tupla?

É porque se a conexão não chegasse ao jasper, daria um erro, entendeu?

jjose

Que zica, pior que nao existe nada na internet para help

:shock:

jyoshiriro

O quer pode ajudar a localizar o erro é criar um report com um consulta super simple tipo

select * from cidade

e botar só 2 campos no detalhe. Teste em modo normal, só pelo IReport só para saber se a consulta está ok.

Dai você faz a chamada via struts2 passando somente a conexão para ver se está tudo, ok.

jjose

Ja estou assim, pelo iReports tudo ok

select * from cliente

Seu struts.xml esta igual ao meu na conexao ?

jyoshiriro

Agora que vi que não!
Na verdade não uso XML há tempos, só uso anotações, mas vi onde tá seu erro:

<result name="success" type="jasper">  
 <param name="location">relatorio.jasper</param>  
 <param name="dataSource">parametros</param>   <-- errado!
 <param name="connection">conexao</param>  
</result>

Deveria estar:

<result name="success" type="jasper">  
 <param name="location">relatorio.jasper</param>  
 <param name="reportParameters">parametros</param>  
 <param name="connection">conexao</param>  
</result>

Segundo a documentação:

reportParameters - (2.1.2+) OGNL expression used to retrieve a map of report parameters from the value stack. The parameters may be accessed in the report via the usual JR mechanism and might include data not part of the dataSource, such as the user name of the report creator, etc.

Criado 3 de dezembro de 2009
Ultima resposta 3 de dez. de 2009
Respostas 11
Participantes 2