Iterando ArrayList no meu Servlet

Pessoal, estou querendo iterar em um servlet um array que é carregado num DAO, o problema q estou tendo é que está percorrendo o array mas não traz os valores!!! Veja as duas classes abaixo:

Meu DAO:

public class DAOTeste{
	public DAOTeste(){}	

	@SuppressWarnings({"deprecation","unchecked"})
	public ArrayList dados(VOTeste vo) throws SQLException, Exception{
	Conexao 			cnx 	= new Conexao();
	ArrayList 			array	= new ArrayList();
	PreparedStatement 	           sql 	= null;
	ResultSet 			rs 	= null;	
	try {
	      cnx.conecta();					
	      sql 	= cnx.conn.prepareStatement
		("SELECT valor,data FROM tabela ");
				
	      rs = sql.executeQuery();
	      while(rs.next()){
		vo = new VOTeste();
		vo.setValor	(rs.getString(1));
		vo.setData	(rs.getString(2));				
		array.add(vo);
	      }								
		rs.close();
		sql.close();
				
	}
	catch(SQLException sqle){
		System.out.println(sqle.getMessage());
		throw new SQLException (sqle.getMessage());
	}
	catch(Exception e){
		System.out.println(e.getMessage());
		throw new SQLException (e.getMessage());
	}
	finally{
		cnx.conn.close();
	}		
	return array;		
      }
	
}

Meu Servlet (Onde estou tentando iterar o array do DAO):

public class Desossa extends ServletGenerico{

private static final long serialVersionUID = 1L; 

@SuppressWarnings("unused") 
public void controle() throws SQLException, Exception{ 
		
String retorno		= "";
		
VOTeste    vo 	= new VOTeste();
DAOTeste  dao 	= new DAOTeste();
ArrayList        array   = new ArrayList();

array 	  = dao.dados(vo);
retorno  = "/index.jsp";
		
         Iterator iterator = array.iterator();        
         while (iterator.hasNext()) {
        	 Object elem = iterator.next();
             System.out.println("data ="+vo.getData());
             System.out.println("valor ="+vo.getValor());
             if (elem == null)
            	 elem = "";
         }
		
	redireciona(retorno);		
     }	
}

O que estou fazendo de errado pra não estar trazendo os valores do array ???

Valew JOMI, era isto mesmo !!!

Obrigadão.

[quote=JOMI]Ou seja, troque Object elem = iterator.next();
por
vo = (VOTeste) iterator.next();[/quote]

Aproveitando o tópico, gostaria de saber como faço pra fazer a mesma iteração 2 vezes, pois o objetivo final é montar um XML em tempo de execução:
Na primeira iteração vou pegar a DATA e na segunda o VALOR:

PrintWriter out = response.getWriter();
out.println("<?xml version='1.0' encoding='UTF-8'?>");
out.println("<graph caption='Comparativo de Despesas'>");
out.println("<categories>");
	while (iterator.hasNext()) {
        	    vo = (VOTeste)  iterator.next();
        	    out.println("<category Name='"+vo.getData()+"' />");
          }		 
out.println("</categories>");
out.println("<dataset seriesName='Resultado'>");
	while (iterator.hasNext()) {
           	vo = (VOTeste)  iterator.next();
        	           out.println("<set Value='"+vo.getValor()+"' />");
          }	
out.println("</dataset>");
out.println("</graph>");

Toques gerais:

  • O tratamento de excecoes que vc ta fazendo esta horrivel (leia mais no blog.caelum.com.br)

  • Que raio de nome de metodo eh dados()? Se vc olhar pra um metodo com um nome desses, vc tem alguma chance de saber o que o treco faz? E controle()?

  • Desligue a supressao de warnings, e aprenda a escrever codigo que nao gere nenhum

  • Aprenda a usar o novo for loop do Java 5. Te quebra um bom galho aqui :wink:

http://fragmental.com.br/wiki/index.php?title=Evitando_VOs_e_BOs

[quote=cv]Toques gerais:

  • Aprenda a usar o novo for loop do Java 5. Te quebra um bom galho aqui ;)[/quote]

Vc pode me indicar algum lugar específico que me ensine, pois na procura no google me traz muita coisa superficial, nada que ensine realmente.

Valew.

No seu servlet quando vc faz a iteracao vc esta dando um print na variavel vo e nao na variavel elem. A sua variavel vo vc somente instancionou e nao setou nenhum atributo

Ou seja, troque Object elem = iterator.next();
por
vo = (VOTeste) iterator.next();

Amigo, tente criar outro iterator.
Por exemplo,
Iterator iterator = array.iterator();
Iterator iterator2 = array.iterator();