Ola pessoal bom dia a tds, estou tentando popular um selectOneMenu e estou tendo mta dificuldade,lembrando que sou nova no java
se alguem puder me dar umas dicas fico mto grata bjos
packagedaoContato;importjava.util.ArrayList;importjava.util.Collection;importjava.util.List;importjavax.faces.model.SelectItem;importmodel.Cliente;importmodel.Contato;importorg.hibernate.HibernateException;importorg.hibernate.Query;importorg.hibernate.Session;importorg.hibernate.SessionFactory;importorg.hibernate.Transaction;importConexao.ConSys;publicclassdaoContatoimplementsIDaoContato{privateSessionsession;publicvoidatualizar(Contatocontato){Sessionsession=ConSys.getSessionFactory().openSession();try{session.beginTransaction();session.update(contato);session.getTransaction().commit();}catch(HibernateExceptione){e.printStackTrace();session.getTransaction().rollback();}finally{session.close();}}publicListconsultarContato(StringNome){// TODO Auto-generated method stubSessionsession=ConSys.getSessionFactory().openSession();Queryquery=session.createQuery("from Contato l where l.nome like :nome");Listlist=query.setString("Nome","%"+Nome+"%").list();returnlist;}publicvoidexcluir(Contatocontato){Sessionsession=ConSys.getSessionFactory().openSession();try{session.beginTransaction();session.delete(contato);session.getTransaction().commit();}catch(HibernateExceptione){e.printStackTrace();session.getTransaction().rollback();}finally{session.close();}}publicvoidsalvar(Contatocontato){Sessionsession=ConSys.getSessionFactory().openSession();try{session.beginTransaction();session.save(contato);session.getTransaction().commit();}catch(HibernateExceptione){e.printStackTrace();session.getTransaction().rollback();}finally{session.close();}}publicList<Contato>todosContatos(){Sessionsession=ConSys.getSessionFactory().openSession();List<Contato>list=session.createQuery("from Contato").list();returnlist;}publicList<Cliente>todosClientes(){Sessionsession=ConSys.getSessionFactory().openSession();List<Cliente>list=session.createQuery("from Cliente").list();returnlist;}}
controlContato
packagecontrol;importjava.util.ArrayList;importjavax.faces.model.DataModel;importjavax.faces.model.ListDataModel;importjavax.faces.model.SelectItem;importmodel.Cliente;importmodel.Contato;importdaoContato.IDaoContato;importdaoContato.daoContato;publicclassControlContato{privateDataModelmodel;privateContatocontato;publicArrayList<SelectItem>lista;publicStringnovo(){this.contato=newContato();return"novo";}publicContatogetContato(){returncontato;}publicvoidsetCliente(Contatocontato){this.contato=contato;}publicDataModelgetTodos(){IDaoContatoldao=newdaoContato();model=newListDataModel(ldao.todosContatos());returnmodel;}publicContatogetContatoFromEditOrDelete(){Contatocontato=(Contato)model.getRowData();returncontato;}publicStringeditar(){Contatocontato=getContatoFromEditOrDelete();setCliente(contato);return"editar";}publicStringupdate(){IDaoContatoldao=newdaoContato();ldao.atualizar(contato);return"sucesso";}publicStringexcluir(){IDaoContatoldao=newdaoContato();Contatocontato=getContatoFromEditOrDelete();ldao.excluir(contato);return"sucesso";}publicStringcreate(){IDaoContatoldao=newdaoContato();ldao.salvar(contato);return"sucesso_inc";}// adicionar os itens abaixo como extrasprivateStringkeysearch;publicStringgetKeysearch(){returnkeysearch;}publicvoidsetKeysearch(Stringkeysearch){this.keysearch=keysearch;}publicDataModelgetBuscarContato(){IDaoContatoidao=newdaoContato();model=newListDataModel(idao.consultarContato(keysearch));returnmodel;}publicDataModelgetTodosComNome(){IDaoContatoidao=newdaoContato();model=newListDataModel(idao.todosContatos());returnmodel;}publicjavax.faces.model.DataModelgetModel(){returnmodel;}publicvoidsetModel(javax.faces.model.DataModelmodel){this.model=model;}estavatentandocomestemetodo/* public ArrayList<SelectItem> getLista() { lista = new ArrayList<SelectItem>(); Cliente cliente = new Cliente(); IDaoContato idao = new daoContato(); ListDataModel resultado = new ListDataModel(idao.todosClientes()); for(int i=0;i< resultado.getRowCount();i++){ cliente = (Cliente)resultado.getRowData(); SelectItem item = new SelectItem(cliente, cliente.getNome()); lista.add(item); } return lista; } *///agora tou tentando assimprivatestaticArrayListgetLista()throwsException{ArrayList<SelectItem>lista=newArrayList<SelectItem>();Clientecliente;IDaoContatoidao=newdaoContato();ListDataModelresultado=newListDataModel(idao.todosClientes());//aqui neste for abaixo ele da um erro : Can only iterate over an array or an instance of java.lang.Iterable//nao compila por isso tentei usar o for de cima for(Clienteteste:resultado){// for(int i=0;i< resultado.getRowCount();i++){ SelectItemitem=newSelectItem(teste.getCodigo(),teste.getNome());lista.add(item);}returnlista;}publicvoidsetLista(ArrayList<SelectItem>lista){this.lista=lista;}}