Pessoal, criei um classe chamada MinhaClasse que tem os métodos Get e Set para id, nome e idade.
Em um servlet eu fiz uma instancia desta classe e criei um ArrayList assim:
MinhaClasse teste = new MinhaClasse();
ArrayList<MinhaClasse> lista = new ArrayList<MinhaClasse>();
Depois em um laço for eu foi alimentando desta forma
...
testeteste.setId(idBase);
teste.setNome(nomeBase);
teste.setIdade(idadeBase);
lista.add(teste);
...
request.setAttribute("valores", lista);
request.getRequestDispatcher("/retornaDados.jsp").forward(request, response);
E depois utilizando JSTL em um arquivo JSP eu recuperei os resultados assim:
<c:forEach var="valor" items="${valores}">
<span><b>ID: </b>${valor.id}</span> -
<span><b>Nome: </b>${valor.nome}</span> -
<span><b>Idade: </b>${valor.idade}</span> </br>
</c:forEach>
O problema é que somente é impresso o último valor repetidamente, fica dessa forma:
ID: 10 - Nome: João - Idade: 45
ID: 10 - Nome: João - Idade: 45
ID: 10 - Nome: João - Idade: 45
ID: 10 - Nome: João - Idade: 45
ID: 10 - Nome: João - Idade: 45
ID: 10 - Nome: João - Idade: 45
ID: 10 - Nome: João - Idade: 45
Fiz um teste no for, que lê um arquivo texto e o valor carregado nos métodos Sets está correto, parece que na hora de assimilar no ArrayList é que bagunça tudo.
Alguém pode dar uma ajuda sobre onde está o erro?