Olá!
Em meu projeto, estou usando Seam + Richfaces. Em uma das funcionalidades desenvolvidas, utilizo o componente Picklist do Richfaces para armazenar um conjunto de itens selecionados. Para popular o Picklist, estou fazendo o seguintepublic List<SelectItem> getListaCriterios() {
if (listaCriterios == null) {
listaCriterios = new ArrayList<SelectItem>();
FontesEstudos fontesEstudos = estudoSecundario.getM_ProcedimentoMetodologico().getM_ProtocoloRevisaoSistematica().getM_FontesEstudos();
List<CriterioSelecaoFontesEstudos> criterios = fontesEstudos.getM_CriterioSelecaoFontesEstudos();
if (criterios != null) {
for (CriterioSelecaoFontesEstudos c: criterios) {
SelectItem item = new SelectItem(c, c.getDescricao());
listaCriterios.add(item);
}
}
}
return listaCriterios;
}
Como é possível ver, ao criar o SelectItem, eu passo o objeto em si e o valor a ser apresentado como Label.
Ao recuperar os objetos selecionados, os objetos são convertidos por meio do método toString() para o formato abaixo:[br.ufrj.cos.ese.configuradorrs.entity.ontologia.procedimentoMetodologico.protocoloRevisaoSistematica.fonteEstudos.CriterioSelecaoFontesEstudos@1d6f94]
Minha dúvida é: Existe alguma maneira sem ter que fazer muitas modificações de recuperar a instância do objeto ao invés do endereço de memória? Isso poderia ser feito a partir do ID de referência do objeto?
Se não for possível, qual a maneira mais rápida de atender a este requisito?
Valeu!!