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
publicCadastroselect(Stringnome)throwsSQLException{Cadastrocadastro=newCadastro();PreparedStatementstatement=connection.prepareStatement("SELECT * FROM cad_membro WHERE UPPER(NOME_CAD) LIKE ?");statement.setString(1,"%"+nome.toUpperCase()+"%");ResultSetrs=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"));}returncadastro;}
ACTION
packagebr.com.novavida.Action;importbr.com.novavida.DAO.CadastroDAO;importbr.com.novavida.Form.MostraCadastroForm;importbr.com.novavida.pojo.Cadastro;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.*;publicclassMostraCadastroActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{MostraCadastroFormformulario=(MostraCadastroForm)form;Cadastrocadastro=formulario.getCadastro();Cadastroencontrado=newCadastroDAO().select(cadastro.getNome());request.setAttribute("cadastro",encontrado);System.out.println("--------------CADASTRO ENCONTRADO---------------");System.out.println("--------------NÚMERO DE CADASTRO"+" "+cadastro.getNome());returnmapping.findForward("mostra");}}
Realmente, você tem que usar Collection. Tente isto:
publicCollection<Cadastro>select(Stringnome)throwsSQLException{//UseiLinkedListpqelemantémnaordemqueveiodobancoCollection<Cadastro>retorno=newLinkedList<Cadastro>();Cadastrocadastro=null;PreparedStatementstatement=connection.prepareStatement("SELECT * FROM cad_membro WHERE UPPER(NOME_CAD) LIKE ?");statement.setString(1,"%"+nome.toUpperCase()+"%");ResultSetrs=statement.executeQuery();while(rs.next()){//Crianovainstânciaparanãosobrescreverreferênciascadastro=newCadastro();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"));//AdicionaainstâncianaCollectionretorno.add(cadastro);}returnretorno;}
sinceramente nunca vi um desenho do ichigo tão mal desenhado e tão engraçado
Scoobydoo
Podes colocar sua classe onde se encontram as variaveis ?
dcorteztec
Não entendi
Scoobydoo
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 é.
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}">