Um objeto no value do select - jsf

1 resposta
P

pessoal estou com um problema para pegar o valor de um select one menu no jsf
para construir os SelectItem eu botei o nome da cidade de label e de valor o proprio objeto. Estou usando o db4o de banco de dados.
até ai tudo bem funciona, mostra certinho na tela.

private ArrayList construirListaCidades() {
ArrayList lista = new ArrayList();
Banco banco = null;
Cidade cidade;
ObjectSet resultado = Banco.getObjectContainer().get(Cidade.class);
while(resultado.hasNext()) {
   cidade = (Cidade)resultado.next();
   SelectItem item = new SelectItem(cidade, cidade.getNome());
   lista.add(item);
}
return lista;
}

o valor no codigo fonte html fica mais ou menos assim:

<option value="modelo.Cidade@7da122">S&atilde;o Paulo</option>
<option value="modelo.Cidade@1ddbf6e">Blumenau</option>
<option value="modelo.Cidade@6d5af1">Porto Alegre</option>
que eu acho que é uma valor para referencia do objeto

no jsf eu botei assim:

<h:selectOneMenu binding="#{bairro$cadBairro.cidade}" id="cidade" style="left: 12px; top: 12px; position: absolute">
<f:selectItems binding="#{bairro$cadBairro.variosItens}" id="variosItens" value="#{bairro$cadBairro.listaCidades}"/>
</h:selectOneMenu>
o problema está quando eu quero recuperar este valor, por exemplo eu to fazendo um cadastro de bairros e dai tem que selecionar a cidade pois na classe bairro tem um atributo cidade do tipo Cidade. Então eu botei o proprio objeto cidade de valor no select e quando vou recuperar o valor da cidade selecionada através do codigo:
Cidade c = (Cidade)cidade.getValue();
acontece isso
sourceId=form1:cidade[severity=(ERROR 2), summary=(form1:cidade: Validation Error: Value is not valid), detail=(form1:cidade: Validation Error: Value is not valid)]

o que pode ser? será que não posso usar o proprio objeto como value para o item? qual seria a solução? já que na classe Cidade eu não tenho nenhum código ou campo identificador para os objetos Cidade...

obrigado, abraços

1 Resposta

P

acho que pode ser parecido com itens e selects do swing também?
alguem aqui usa db4o ou algo parecido?
e ai pessoal ninguem tem alguma ideia?
to precisando resolve isso duma vez… já faz dois dias que to com esse pepino.

Criado 9 de outubro de 2007
Ultima resposta 10 de out. de 2007
Respostas 1
Participantes 1