@ManagedBean(name="cadRecursosBean")@ViewScopedpublicclassCadEqupamentosBeanimplementsSerializable{publicCadEqupamentosBean(){verificarParametros();listarRecursos();listarTipoRecurso();}privatevoidverificarParametros(){try{StringrecursoID=FacesUtil.getUrlAttribute("recursoID");if(recursoID!=null){selectedRecurso=dao.buscaEquipamento(recursoID);}}catch(Exceptione){FacesUtil.FacesMessage("Recurso não encontrado",FacesUtil.ERRO);}}....
Agradeço pela ajuda
S
Sandro_Queiroz
Altera a implementação do getAsObject para algo tipo:
Não funcionou dessa maneira ele nem cadastrou e nem apareceu selecionado ao editar , mas ao verificar o value ele realmente esta
com o valor id do tipo de recurso, mas não funciona… e não é possivel fazer essa conversão sem precisar buscar no banco?
Obrigado.
S
Sandro_Queiroz
Você realmente precisa do converter ? Por que vc não tenta usar apenas o ID ?
Pelo que entendi vc tem uma entity Recurso e dentro dela uma referencia pra um outra entity TipoRecurso, é isso?
Provavelmente TipoRecurso tem um id do tipo Long.
Então seu código ficaria:
Eu uso exatamente dessa forma mas sem precisar fazer essa busca, pois o id do TipoRecurso já esta setado.
Comenta essa linha e tenta salvar e depois alterar.
R
renancortes
Sandro Queiroz realmente funcionou sem pesquisar!, estranho eu já tive problemas desse tipo por isso fazia essa pesquisa
talvez no jsf 1.2 sei lá, mas beleza assim é uma pesquisa a menos no banco
Obrigado pela ajuda!!!
F
Fernando_Mateus
Boa tarde pessoal.
Estou passando por um problema parecido, mas o que parece ser é que o meu converter não está funcionando corretamente.
Acredito que é porque estou querendo realizar a injeção de dependencia através na anotation @EJB dentro de um converter.
Isso está correto?
Segue o código do converter. Alguém pode me ajudar?
@FacesConverter(forClass=Estado.class,value="estadoConverter")publicclassEstadoConverterimplementsConverter{@EJBprivateEstadoRepositoryestadoRepository;@OverridepublicObjectgetAsObject(FacesContextcontext,UIComponentcomponent,Stringid){try{Estadoestado;LongidEstado=Long.parseLong(id);estado=this.estadoRepository.pesquisaPorId(idEstado);returnestado;}catch(Exceptione){thrownewSisCgException("Erro ao converter Estado!");}}@OverridepublicStringgetAsString(FacesContextcontext,UIComponentcomponent,Objectvalue){Estadoestado=(Estado)value;returnestado.getId()+"";}}
Aqui o Código do meu Managed Bean que adiciona os SelectsItems:
publicList<Estado>getListaEstados(){
returnthis.estadoRepository.pesquisarTodos();}
publicList<SelectItem>getSelectEstados(){
List<SelectItem>listaSelect=newArrayList<SelectItem>();try{
for(EstadoestadoEach:this.getListaEstados()){
SelectItemsi=newSelectItem();si.setLabel(estadoEach.getNome());si.setValue(estado.getId());listaSelect.add(si);}
returnlistaSelect;}catch(Exceptione){
thrownewSisCgException("Não foi possível obter a lista de Estados");}
}
Aqui o código do meu xhtml, o componente que chama o método do managed bean