Na minha classe Action estou fazendo uma conexão com o banco de dados (jdbc) e executando um método que me retorna um resultset (várias linhas). Nessa clase Action o meu Forward aponta para uma página jsp onde serão visualizados os dados da consulta.
Minha dúvida é como fazer para essa página jsp “enxergar” o resultset para poder mostrar os dados da consulta.
Agradeço a ajuda.
Olá Vinicius,
Bem, na sua action vc deve colocar o resultado obtido do banco (no caso um resultSet) e coloca-lo no request ou na session, ai na pagina vc recupera ele
Ai vai um exemplo:
Action
Collection usuarios=UsuarioDelegate.listar();
request.setAttribute("usuarios",usuarios);
return mapping.findForward("collection-ok");
JSP
<logic:iterate name="usuarios" id="usuario">
<bean:write name="usuario" property="nome"/>
</logic:iterate>
Espero ter ajudado, qualquer coisa me avise
[]'s
Olá Helder,
Obrigado pela dica. Fiz alguns testes com a sugerstão dada e ainda estou com problema. O que estou fazendo é o seguinte:
Action:
Objeto NS = new Objeto ();
ResultSet Resultado = NS.ConsultaC1(var1,var2,var3)
request.setAttribute(“Resultado”,Resultado);
JSP:
<logic:iterate name="Resultado" id="Tabela1" >
<bean:write name="Tabela1" property="NOME"/>
</logic:iterate>
A mensagem de erro: org.apache.jasper.JasperException: Cannot create iterator for this collection
Alterando o código JSP p/:
<logic:iterate name="Tabela1" id="Resultado" >
<bean:write name="Tabela1" property="NOME"/>
</logic:iterate>
A mensagem de erro: org.apache.jasper.JasperException: Cannot find bean RHCDC001 in any scope
Agradeço a ajuda.
Cara, eu nunca trabalhei com Struts, mas pelo que entendo de MVC você tem de encapsular os dados que vem do banco em um javabean para cada registro e colocar a coleção de bens num array que deve ser chamado pela tag logic:iterate
Gustavo Guilherme BacK
[quote=“back”]Cara, eu nunca trabalhei com Struts, mas pelo que entendo de MVC você tem de encapsular os dados que vem do banco em um javabean para cada registro e colocar a coleção de bens num array que deve ser chamado pela tag logic:iterate
Gustavo Guilherme BacK[/quote]
Concordo… voce esta tentando iterar sobre um ResultSet. Jogue os dados do ResultSet numa Collection.
Marcio Kuchma
Caso nao queira fazer isso na mao grande (jogar o resultset numa collection) voce pode pedir ajuda da JSTL. Basta usar a classe ResultSupport (http://java.sun.com/products/jsp/jstl/1.1/docs/api/javax/servlet/jsp/jstl/sql/ResultSupport.html) que ela converte seu resultset para um objeto do tipo javabean. Nao eh necessario usar o especificamente o jstl para manipular o objeto, seus metodos pode ser acessados pelas tags do struts ou outra camada de apresentacao que vice use.
Parece que o jakarta-commons tem algo tambem nesse sentido.