Geração de selectOneMenu no jsf - parâmetro value

Qual é a forma mais recomendada para se construir um selectOneMenu no jsf?
Eu tenho objetos que não possuem um campo chave único para sua identificação…
Por exemplo, eu tenho a classe Cidade, que possui somente Nome e Estado (nenhum campo chave). Como faço para colocar as Cidades no item do selectOneMenu?
O que coloco de value?
Qual é a solução mais recomendada?

e ai pessoal!
ninguem sabe? preciso urgente duma solução… já faz mais de uma semana que to procurando uma solução e não encontro…

acho que o problema é que estou usando db4o e por isso não usei nenhum código ou campo chave ou identificador…
será que devo colocar um atributo id em cada classe?

daí fugiria dos principios da orientação a objetos…

No Mbean

public class Mbean {
    private List<SelectItem> combo;
    private String cidadeSelecionada;

    // getters e setters suprimidos

    public List<SelectItem> getCombo() {
        if (combo == null) {
            combo = new ArrayList<SelectItem>();
            combo.add(new SelectItem("PA","Pará");
            combo.add(new SelectItem("CE","Ceará");
            
        }
        return combo;
    }
}

No JSP

<f:view>
    <h:selectOneMenu value="#{mbean.cidadeSelecionada}" />
        <f:selectItem value="#{mbean.combo}" />
    </h:selectOneMenu>
</f:view>

http://www.google.com/search?hl=pt-PT&q=selectonemenu&btnG=Pesquisa+Google&lr=

[quote=thiago.correa]No Mbean

public class Mbean {
    private List<SelectItem> combo;
    private String cidadeSelecionada;

    // getters e setters suprimidos

    public List<SelectItem> getCombo() {
        if (combo == null) {
            combo = new ArrayList<SelectItem>();
            combo.add(new SelectItem("PA","Pará");
            combo.add(new SelectItem("CE","Ceará");
            
        }
        return combo;
    }
}

No JSP

<f:view> <h:selectOneMenu value="#{mbean.cidadeSelecionada}" /> <f:selectItem value="#{mbean.combo}" /> </h:selectOneMenu> </f:view> [/quote]

mas o problema é que eu tenho uma classe Cidade só com os atributos nome e estado.
O que eu coloco de valor? Eu não tenho o parametro id ou codigo…
Estou colocando o proprio objeto de valor… Daí no html fica assim:

[code]são paulo

rio de janeiro[/code]

o que significa esse modelo.Cidade@xxxxxxx ? é a referencia para o objeto?
como eu faço para recuperar o objeto depois? tá dando um erro de conversão quando eu dou submit:

Erro de conversão definindo valor'modelo.Cidade@1f38d7d' para 'null Converter'.

como faço para converter esse modelo.Cidade@xxxxxxx para um objeto Cidade, que já existe e está na memoria?

ai pessoal achei um endereço que pode ser que tenha a resposta para a pergunta que mais tá encomodando esse forum!!!
já fazem dias que estou tentando resolver o problema desse post, mas ainda não consegui…
achei isso, pesquisando no google:
http://64.233.169.104/search?q=cache:lsf4rv6P208J:balusc.blogspot.com/2007/09/objects-in-hselectonemenu.html+objects+in+the+selectonemenu+value+%22customer%40%22+converter&hl=pt-BR&ct=clnk&cd=10&gl=br
outro:http://64.233.169.104/search?q=cache:1vLSzxSpWGkJ:forum.java.sun.com/thread.jspa%3FthreadID%3D5200533%26messageID%3D9798625+%22null+Converter%22+jsf+object&hl=pt-BR&ct=clnk&cd=4&gl=br

só não consegui aplicar no meu codigo, pois nessa página o exemplo possui um key para cada item, diferente do meu caso, onde os itens são o label/key(cidade.getNome) e o valor (próprio objeto cidade)
estou com dificuldade para fazer o conversor, não sei como eu pego o map do bean no conversor… tem a ver com o FacesContext

no meu bean eu tenho o seguinte:

... public Map getListaDeCidades() { ObjectSet resultado = Banco.getObjectContainer().get(Cidade.class); listaDeCidades = new HashMap<String, Cidade>(); while(resultado.hasNext()) { Cidade c = (Cidade)resultado.next(); listaDeCidades.put(c.getNome(), c); } return listaDeCidades; } ...

no jsp:

<h:selectOneMenu id="cidade" value="#{cadBairro.cidade}" required="true" converter="cidade"> <f:selectItems value="#{cadBairro.listaDeCidades}"/> </h:selectOneMenu> <h:message for="cidade"/>

e o conversor eu não sei como vou acessar essa lista e depois achar a cidade selecionada se no html fica:

[code]são paulo

rio de janeiro[/code]

alguem já se deparou com isso e sabe o significa esses codigos loucos? como eu vou acessar o objeto através deles?