Pessoal, to com o seguinte problema, to tentando listar dados do banco em um SelectItems.
Vejam como ficou meu código:
TELA:
<h:outputText value="Tipo: " />
<h:selectOneListbox id="tipo_equipamento" value="#{mbEquipamentos.tipoEquipamento}" >
<f:selectItems value="#{mbEquipamentos.listaEquipamentos}"/>
</h:selectOneListbox>
MANAGED BEAN:
private SelectItem[] listaEquipamentos;
public SelectItem[] getListaEquipamentos() {
Collection<Equipamento> todosEquipamentos = null;
try {
todosEquipamentos = Facade.getInstance().listarEquipamentos();
} catch (SQLException ex) {
ex.printStackTrace();
}
SelectItem[] equipamentos = new SelectItem[todosEquipamentos.size()];
int i=0;
for(Equipamento e : todosEquipamentos){
equipamentos[i] = new SelectItem(String.valueOf(e.getCodigoEquipamento()), e.getTipoEquipamento());
i++;
}
return equipamentos;
}
public Collection<Equipamento> listarEquipamentos() throws SQLException {
//conecta com o banco de dados
EntityManager em = getEntityManager();
//cria uma coleção de objetos
Collection<Equipamento> equipamentos = null;
try {
//cria a query para listar os registros
equipamentos = (Collection) em.createNamedQuery("Equipamento.find").getResultList();
} catch (Exception e) {
//se der erro, faz um rollback
em.getTransaction().rollback();
}finally{
//libera os recursos
em.close();
}
return equipamentos;
}
Se alguém poder ajudar fico muito grato.