No h:selectManyMenu deveria retornar uma lista com os valores vindos do banco de dados, mas o que aparece é apenas um valor tipo beans.CadastradorBean@1e48948
O trecho do código da página xhtml é esse:
<h:selectManyMenu id="cadastradorSelect">
<f:selectItems value="#{cadastradorC.lista}" />
</h:selectManyMenu><h:message for="cadastradorSelect" /
Trecho da Classe do CadastradorControlador:
...
private List lista;
public List getLista() throws Exception {
CadastradorDAO dao = new CadastradorDAO();
this.lista = dao.getTodosCadastradores();
return this.lista;
}
...
O trecho da Classe CadastradorDao, que é usado pelo CadastradorControlador:
public List getTodosCadastradores() throws Exception {
...
try {
connection = this.conn;
ps = connection.prepareStatement("SELECT nome FROM cadastradores");
rs = ps.executeQuery();
List<CadastradorBean> lista = new ArrayList<CadastradorBean>();
while(rs.next()) {
String nome = rs.getString(1);
lista.add(new CadastradorBean(nome));
}
return lista;
}
...
Na Classe CadastradorBean, há vários construtores, sendo que o que é utilizado pelo CadastradorDao (nesse caso) é esse:
...
private String id;
private String nome;
private String senha;
public CadastradorBean(String nome) {
this.nome = nome;
}
...
Meu arquivo facex-config.xml:
<managed-bean>
<managed-bean-name>cadastrador</managed-bean-name>
<managed-bean-class>beans.CadastradorBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name>cadastradorC</managed-bean-name>
<managed-bean-class>controladores.CadastradorControlador</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Alguém consegue ver onde estou errando? Qualquer ajuda seria bem vinda, estou começando ainda com o JSF…
Desde já, obrigado!
