JSF: Como capturar o item selecionado em uma SelectOneListbox

Estive dando uma olhada neste post:

http://www.guj.com.br/posts/preList/119632/659884.java

Entendi a parte de carregamento dos dados para a página, mas na submissão do formulário, como recuperar o item selecionado no ManagedBean?

Eu criei um atributo do tipo HtmlSelectOneListbox e na página jsp coloquei-o no atributo binding do SelectOneListbox.

Selecionei um item e fiz uma depuração, interrompendo o código nesta linha:

Object objeto = selectOne.getSubmitedValue();

Para ver o que esse método retorna. Mas só vem nulo, não importa qual item eu selecione.

Qual a melhor maneira de capturar o item selecionado, neste caso?

repare nesta linha:

# <h:selectOneMenu id="id_cidade" value="#{clienteManagedBean.cidade}" >  

o comando value="#{clienteManagedBean.cidade}" faz o binding automatico do combo para a propriedade cidade do seu MB, portanto, basta ir na classe do MB e utilizar o metodo getCidade() da classe

Não funcionou.

Eu tenho um combobox criado com este código:

                    <tr><td>
                            <f:verbatim>Tipo</f:verbatim>
                        </td><td>
                            <h:selectOneListbox value="#{ProdutoMB.produto.tipo.tipo_id}">

                                <f:selectItems  value="#{ProdutoMB.tipos}"/>

                            </h:selectOneListbox>
                    </td></tr>

Eu consigo carregar um registro existente, e o combo traz o tipo selecionado corretamente. Mas se eu seleciono outro tipo, ele não atualiza o atributo do ManagedBean. Quando eu vou depurar, continua com o mesmo valor, e não com o que eu selecionei. No ManagedBean eu faço isto:

    public String gravar()
    {
        if (produto.getProduto_id()==0)
        {
             produto.setProduto_id((int)Math.abs(10*Math.random())); 
         }
        produto.setTipo(tipoDao.find(produto.getTipo().getTipo_Id()));

        produtoDao.save(produto);

        return null;
    }

Só que o getTipo_Id() retorna o id do registro atual e não do novo que eu selecionei no combo.
Existe outra forma de capturar o item selecionado no SelectOneListbox?