public SelectItem listar() {
SelectItem combo = new SelectItem();
try {
PreparedStatement stmt = this.getCon
.prepareStatement("select nome from cad_usuario");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
combo.setLabel(rs.getString("nome"));
}
rs.close();
stmt.close();
return combo;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
[RESOLVIDO]Problema com While e SelectItem
4 Respostas
Entaoo Cara …
Da um olhada no seu codigo …voce vai perceber que nao é que ele esta trazendo so o ultimo nome da base …
Na verdade voce tem uma unica instancia pra todos registros …
Tenta fazer isso …
try {
PreparedStatement stmt = this.getCon
.prepareStatement("select nome from cad_usuario");
ResultSet rs = stmt.executeQuery();
List<SelectItem> itens = new ArrayList();
while (rs.next()) {
SelectItem combo = new SelectItem();
combo.setLabel(rs.getString("nome"));
itens.add(combo);
}
Voce vai ver que agora vc vai ter todos os nomes …
FLW …
Entaoo Cara …Da um olhada no seu codigo …voce vai perceber que nao é que ele esta trazendo so o ultimo nome da base …
Na verdade voce tem uma unica instancia pra todos registros …
Tenta fazer isso …
try { PreparedStatement stmt = this.getCon .prepareStatement("select nome from cad_usuario"); ResultSet rs = stmt.executeQuery(); List<SelectItem> itens = new ArrayList(); while (rs.next()) { SelectItem combo = new SelectItem(); combo.setLabel(rs.getString("nome")); itens.add(combo); }Voce vai ver que agora vc vai ter todos os nomes …
FLW …
Então fgavioes, desta forma funcionou mas tive que fazer algumas modificações no tipo de lista, mas até ai tudo beim. Porém agora ele retorna na lista a quantidade de linhas que possui na tabela MAS COM O ULTIMO NOME INSERIDO!
Entaoo Cara …Da um olhada no seu codigo …voce vai perceber que nao é que ele esta trazendo so o ultimo nome da base …
Na verdade voce tem uma unica instancia pra todos registros …
Tenta fazer isso …
try { PreparedStatement stmt = this.getCon .prepareStatement("select nome from cad_usuario"); ResultSet rs = stmt.executeQuery(); List<SelectItem> itens = new ArrayList(); while (rs.next()) { SelectItem combo = new SelectItem(); combo.setLabel(rs.getString("nome")); itens.add(combo); }Voce vai ver que agora vc vai ter todos os nomes …
FLW …
Então fgavioes, desta forma funcionou mas tive que fazer algumas modificações no tipo de lista, mas até ai tudo beim. Porém agora ele retorna na lista a quantidade de linhas que possui na tabela MAS COM O ULTIMO NOME INSERIDO!
Então cara ta funcionando mesmo tava certo meu erro era eu não declarava a “SelectItem combo =
new SelectItem” dentro do while, assim ele tinha uma instacia so como vc falou!Obrigado pela ajuda!
Olá Rapha, estava com a mesma duvida, mas consegui resolver. Tem outra coisa que não consegui resolver, uma duvida igual a sua deste post: http://www.guj.com.br/java/247030-duvida-com-selectonemenu.
É uma duvida parecida, voce conseguiu resolver? Qual material te ajudou, se puder gostaria que me indicasse.
Obrigado.