[RESOLVIDO]Listar objetos do banco de dados

Já tinha criado uma aplicação em struts já esta até em uso mas o cliente pediu que na hora que busca se por nome e que listasse os nomes. bom pergunta eu fiz só que quando eu busco só retorna 1 nome ele naum lista se tiver 2 ronaldos cadastrados ele retorna o ultimo cadastrado, se vcs poderem me ajudarem vou colocar as classes.
eu acho que tem que usar Collections mas naum sei usar muito bem


public Cadastro select(String nome) throws SQLException {
		Cadastro cadastro = new Cadastro();
		PreparedStatement statement = connection
				.prepareStatement("SELECT * FROM cad_membro WHERE UPPER(NOME_CAD) LIKE ?");
		statement.setString(1,"%" + nome.toUpperCase() + "%");
		ResultSet rs = statement.executeQuery();
		while (rs.next())
			
		{
			cadastro.setNum_cad(Long.valueOf(rs.getLong("NUM_CAD")));
			cadastro.setNome(rs.getString("NOME_CAD"));
		    cadastro.setEndereco(rs.getString("END_CAD"));
			cadastro.setBairro(rs.getString("BAIRRO_CAD"));
			cadastro.setCidade(rs.getString("CIDADE_CAD"));
			cadastro.setTelefone(rs.getInt("TEL_CAD"));
			cadastro.setDataent(rs.getDate("DATAENT_CAD"));
			cadastro.setNascimento(rs.getDate("NASC_CAD"));

		}
		return cadastro;
	}
	

ACTION

package br.com.novavida.Action;

import br.com.novavida.DAO.CadastroDAO;
import br.com.novavida.Form.MostraCadastroForm;
import br.com.novavida.pojo.Cadastro;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;

public class MostraCadastroAction extends Action {
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		MostraCadastroForm formulario = (MostraCadastroForm) form;
		Cadastro cadastro = formulario.getCadastro();
		Cadastro encontrado = new CadastroDAO().select(cadastro.getNome());
		request.setAttribute("cadastro", encontrado);
		System.out.println("--------------CADASTRO ENCONTRADO---------------");
		System.out.println("--------------NÚMERO DE CADASTRO" + "  " +cadastro.getNome());
	    return mapping.findForward("mostra");
	}
}

JSP

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%>
<%@ taglib uri="http://displaytag.sf.net" prefix="display"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>

<%@page import="br.com.novavida.DAO.CadastroDAO"%><html:html>
<html:errors />
<head>
<title>Sistema de Cadastro Nova Vida (Versão 1.0)</title>
<style type="text/css">
@IMPORT url("/novavida/controller/css/cadastro.css");
</style>
</head>
<html:form action="/mostracadastro" method="POST">

	<body>

	<div id="tudo">
	<div id="topo"></div>

	<div id="menup">
	<ul>
		<li><a href="/novavida/jsp/buscacad.jsp">Home </a></li>

		<li><a href="/novavida/jsp/cadastro.jsp">Cadastrar</a></li>
		
		<li><a href="/novavida/jsp/visitante/visitante.jsp">Visitantes</a>
		<ul>
		<li><a href="/novavida/jsp/visitante/buscavisit.jsp">Busca</a></li>
		</ul>
		</li>
		
	</ul>
  	
  	
	</div>
	<div id="conteudo">
	<h1>SISTEMA DE CADASTRO DE MEMBROS</h1>
	<fieldset><legend>
	<h2>Busca Membros</h2>
	</legend> <label> <span>Nome do Membro:</span><html:text
		property="cadastro.nome" value="${cadastro.nome}" size="40"></html:text> </label>
	<html:submit styleClass="btn">Buscar Cadastro</html:submit></fieldset>
		<c:forEach var="cadastro.nome" items="${cadastro.nome}">
		<%String parametro=request.getParameter("cadastro.nome");
	    request.setAttribute("cadastro",new CadastroDAO().select(parametro));%>
	<display:table name="cadastro" id="cadastro.num_cad" class="simple" defaultsort="1"    defaultorder="descending"  pagesize="1000">
		  <display:column property="num_cad" title="ID" sortable="true" />
		  <display:column property="nome" title="Nome" sortable="true"/>
		  <display:column property="endereco" title="End" sortable="true"  />
		  <display:column property="bairro" title="Bairro" sortable="true"  />
		  <display:column property="cidade" title="Cidade" sortable="true"  />
		  <display:column property="telefone" title="TEL" sortable="true"  />
		  <display:column property="dataent" title="Data entrda" sortable="true"  />
		  <display:column property="nascimento" title="Nascimento" sortable="true"  />
		  <display:column title="Editar" >
         <a href="verificacadastro.do?cadastro.num_cad=${cadastro.num_cad}">
            <img src="/novavida/controller/imagens/editar.gif" title="Editar Visitante" height="15">
          </a>
 	 	  </display:column>
    </display:table>	
	</c:forEach>
	</div>
	</div>
	</body>
</html:form>
</html:html>

Realmente, você tem que usar Collection. Tente isto:

	public Collection&lt;Cadastro&gt; select(String nome) throws SQLException {
		//Usei LinkedList pq ele mantém na ordem que veio do banco
		Collection&lt;Cadastro&gt; retorno = new LinkedList&lt;Cadastro&gt;();

		Cadastro cadastro = null;
		PreparedStatement statement = connection
				.prepareStatement("SELECT * FROM cad_membro WHERE UPPER(NOME_CAD) LIKE ?");
		statement.setString(1,"%" + nome.toUpperCase() + "%");
		ResultSet rs = statement.executeQuery();
		while (rs.next())
			
		{
			//Cria nova instância para não sobrescrever referências
			cadastro = new Cadastro();
			cadastro.setNum_cad(Long.valueOf(rs.getLong("NUM_CAD")));
			cadastro.setNome(rs.getString("NOME_CAD"));
		        cadastro.setEndereco(rs.getString("END_CAD"));
			cadastro.setBairro(rs.getString("BAIRRO_CAD"));
			cadastro.setCidade(rs.getString("CIDADE_CAD"));
			cadastro.setTelefone(rs.getInt("TEL_CAD"));
			cadastro.setDataent(rs.getDate("DATAENT_CAD"));
			cadastro.setNascimento(rs.getDate("NASC_CAD"));

			//Adiciona a instância na Collection
			retorno.add(cadastro);

		}
		return retorno;
	}

Na Action vc substitui a linha

por:

e seu JSP ficaria assim:

&lt;%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
&lt;%@ taglib prefix="html" uri="http://struts.apache.org/tags-html"%&gt;
&lt;%@ taglib uri="http://displaytag.sf.net" prefix="display"%&gt;
&lt;%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%&gt;

&lt;%@page import="br.com.novavida.DAO.CadastroDAO"%&gt;&lt;html:html&gt;
&lt;html:errors /&gt;
&lt;head&gt;
&lt;title&gt;Sistema de Cadastro Nova Vida (Versão 1.0)&lt;/title&gt;
&lt;style type="text/css"&gt;
@IMPORT url("/novavida/controller/css/cadastro.css");
&lt;/style&gt;
&lt;/head&gt;
&lt;html:form action="/mostracadastro" method="POST"&gt;

	&lt;body&gt;

	&lt;div id="tudo"&gt;
	&lt;div id="topo"&gt;&lt;/div&gt;

	&lt;div id="menup"&gt;
	<ul>
		<li><a >Home </a></li>

		<li><a >Cadastrar</a></li>
		
		<li><a >Visitantes</a>
		<ul>
		<li><a >Busca</a></li>
		</ul>
		</li>
		
	</ul>
  	
  	
	&lt;/div&gt;
	&lt;div id="conteudo"&gt;
	&lt;h1&gt;SISTEMA DE CADASTRO DE MEMBROS&lt;/h1&gt;
	&lt;fieldset&gt;&lt;legend&gt;
	&lt;h2&gt;Busca Membros&lt;/h2&gt;
	&lt;/legend&gt; &lt;label&gt; &lt;span&gt;Nome do Membro:&lt;/span&gt;&lt;html:text
		property="cadastro.nome" value="${cadastro.nome}" size="40"&gt;&lt;/html:text&gt; &lt;/label&gt;
	&lt;html:submit styleClass="btn"&gt;Buscar Cadastro&lt;/html:submit&gt;&lt;/fieldset&gt;
		&lt;!-- A variavel linha corresponde a cada iteração da Collection --&gt;
		&lt;c:forEach var="linha" items="${cadastro}"&gt;
	&lt;display:table name="linha" id="cadastro.num_cad" class="simple" defaultsort="1"    defaultorder="descending"  pagesize="1000"&gt;
		  &lt;display:column property="num_cad" title="ID" sortable="true" /&gt;
		  &lt;display:column property="nome" title="Nome" sortable="true"/&gt;
		  &lt;display:column property="endereco" title="End" sortable="true"  /&gt;
		  &lt;display:column property="bairro" title="Bairro" sortable="true"  /&gt;
		  &lt;display:column property="cidade" title="Cidade" sortable="true"  /&gt;
		  &lt;display:column property="telefone" title="TEL" sortable="true"  /&gt;
		  &lt;display:column property="dataent" title="Data entrda" sortable="true"  /&gt;
		  &lt;display:column property="nascimento" title="Nascimento" sortable="true"  /&gt;
		  &lt;display:column title="Editar" &gt;
         <a >
            <img   >
          </a>
 	 	  &lt;/display:column&gt;
    &lt;/display:table&gt;	
	&lt;/c:forEach&gt;
	&lt;/div&gt;
	&lt;/div&gt;
	&lt;/body&gt;
&lt;/html:form&gt;
&lt;/html:html&gt;

Espero que tenha ajudado!

[]'s

Deu esse erro aqui

exception

javax.servlet.ServletException: org.apache.jasper.JasperException: java.lang.NumberFormatException: For input string: "nome"
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

org.apache.jasper.JasperException: java.lang.NumberFormatException: For input string: "nome"
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause

java.lang.NumberFormatException: For input string: "nome"
java.lang.NumberFormatException.forInputString(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
javax.el.ListELResolver.coerce(ListELResolver.java:166)
javax.el.ListELResolver.getValue(ListELResolver.java:51)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
org.apache.el.parser.AstValue.getValue(AstValue.java:97)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:923)
org.apache.jsp.jsp.buscacad_jsp._jspx_meth_html_005ftext_005f0(buscacad_jsp.java:259)
org.apache.jsp.jsp.buscacad_jsp._jspService(buscacad_jsp.java:145)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

sinceramente nunca vi um desenho do ichigo tão mal desenhado e tão engraçado

Podes colocar sua classe onde se encontram as variaveis ?

Não entendi

Em algum momento você está covertendo sua variavel String em int.
Ele deve estar setando em algum lugar o srt, tentando o transformar em integer. mas não está conseguindo.
preciso ter uma definição da sua classe Cadastro.
Você tem ela criada não é.

<c:forEach var="cadastro.nome" items="${cadastro.nome}"> <%String parametro=request.getParameter("cadastro.nome"); request.setAttribute("cadastro",new CadastroDAO().select(parametro));%>

Troque por
<c:forEach var="item" items="${cadastro}" varStatus="s" > <display:table name="linha" id="cadastro.num_cad" class="simple" defaultsort="1" defaultorder="descending" pagesize="1000"> <display:column property="item.num_cad" title="ID" sortable="true" /> ... ...

Classe Cadastro


package br.com.novavida.pojo;

import java.io.Serializable;
import java.sql.Date;

public class Cadastro
    implements Serializable
{
	private static final long serialVersionUID = 1L;
    private Long num_cad;
    private String nome;
    private String email;
    private String endereco;
    private String bairro;
    private String cidade;
    private String uf;
    private int cep;
    private int telefone;
    private Date nascimento;
    private String profissao;
    private String estcivil;
    private int nfilhos;
    private String conjuge;
    private String membroigreja;
    private String outraigreja;
    private Date batismo;
    private String funcao;
    private String imagem;
    private Date dataent;
    private int teltrab;
    private Date datacas;
    private Date nasconj;
    private String sexo;
    private String tipocad1;
    private String tipocad2;
    private String tipocad3;
    private String tipocad4;

    public Cadastro()
    {
    }

    public String getTipocad2()
    {
        return tipocad2;
    }

    public void setTipocad2(String tipocad2)
    {
        this.tipocad2 = tipocad2;
    }

    public String getTipocad3()
    {
        return tipocad3;
    }

    public void setTipocad3(String tipocad3)
    {
        this.tipocad3 = tipocad3;
    }

    public String getTipocad4()
    {
        return tipocad4;
    }

    public void setTipocad4(String tipocad4)
    {
        this.tipocad4 = tipocad4;
    }

    public String getTipocad1()
    {
        return tipocad1;
    }

    public void setTipocad1(String tipocad)
    {
        tipocad1 = tipocad;
    }

    public String getSexo()
    {
        return sexo;
    }

    public void setSexo(String sexo)
    {
        this.sexo = sexo;
    }

    public String getBairro()
    {
        return bairro;
    }

    public void setBairro(String bairro)
    {
        this.bairro = bairro;
    }

    public Date getBatismo()
    {
        return batismo;
    }

    public void setBatismo(Date batismo)
    {
        this.batismo = batismo;
    }

    public int getCep()
    {
        return cep;
    }

    public void setCep(int cep)
    {
        this.cep = cep;
    }

    public String getCidade()
    {
        return cidade;
    }

    public void setCidade(String cidade)
    {
        this.cidade = cidade;
    }

    public String getConjuge()
    {
        return conjuge;
    }

    public void setConjuge(String conjuge)
    {
        this.conjuge = conjuge;
    }

    public Date getDatacas()
    {
        return datacas;
    }

    public void setDatacas(Date datacas)
    {
        this.datacas = datacas;
    }

    public Date getDataent()
    {
        return dataent;
    }

    public void setDataent(Date dataent)
    {
        this.dataent = dataent;
    }

    public String getEmail()
    {
        return email;
    }

    public void setEmail(String email)
    {
        this.email = email;
    }

    public String getEndereco()
    {
        return endereco;
    }

    public void setEndereco(String endereco)
    {
        this.endereco = endereco;
    }

    public String getEstcivil()
    {
        return estcivil;
    }

    public void setEstcivil(String estcivil)
    {
        this.estcivil = estcivil;
    }

    public String getFuncao()
    {
        return funcao;
    }

    public void setFuncao(String funcao)
    {
        this.funcao = funcao;
    }

    public String getImagem()
    {
        return imagem;
    }

    public void setImagem(String imagem)
    {
        this.imagem = imagem;
    }

    public String getMembroigreja()
    {
        return membroigreja;
    }

    public void setMembroigreja(String membroigreja)
    {
        this.membroigreja = membroigreja;
    }

    public Date getNascimento()
    {
        return nascimento;
    }

    public void setNascimento(Date nascimento)
    {
        this.nascimento = nascimento;
    }

    public int getNfilhos()
    {
        return nfilhos;
    }

    public void setNfilhos(int nfilhos)
    {
        this.nfilhos = nfilhos;
    }

    public String getNome()
    {
        return nome;
    }

    public void setNome(String nome)
    {
        this.nome = nome;
    }

    public Long getNum_cad()
    {
        return num_cad;
    }

    public void setNum_cad(Long num_cad)
    {
        this.num_cad = num_cad;
    }

    public String getOutraigreja()
    {
        return outraigreja;
    }

    public void setOutraigreja(String outraigreja)
    {
        this.outraigreja = outraigreja;
    }

    public String getProfissao()
    {
        return profissao;
    }

    public void setProfissao(String profissao)
    {
        this.profissao = profissao;
    }

    public int getTelefone()
    {
        return telefone;
    }

    public void setTelefone(int telefone)
    {
        this.telefone = telefone;
    }

    public int getTeltrab()
    {
        return teltrab;
    }

    public void setTeltrab(int teltrab)
    {
        this.teltrab = teltrab;
    }

    public String getUf()
    {
        return uf;
    }

    public void setUf(String uf)
    {
        this.uf = uf;
    }

    public Date getNasconj()
    {
        return nasconj;
    }

    public void setNasconj(Date nasconj)
    {
        this.nasconj = nasconj;
    }

    
}

Resolvi assim o que foi inteirado no for a variavel <c:forEach var="linha" items="${cadastro}">
e depois <a href="verificacadastro.do?cadastro.num_cad=${linha.num_cad}">

muito obrigado pela ajuda