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.
Duvida no Struts
5 Respostas
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
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:iterateGustavo Guilherme BacK
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.