Problema para editar Cidades usando JSF e Hibernate

Oi pessoal, tudo bem,

tenho um sistema que uso Hibernate e JSF 2, e tenho a seguinte tela

estou puxando o país de uma outra tabela(assim q a tela é carregada), e para pegar o estado, ao clicar no pais é ativado o valueOnChangeListener no selectOneMenu e assim ele consegue exibir o estado, o usúario seleciona o estado e digita o nome da cidade e manda gravar, até ai tudo bem.

Ao clicar em pesquisar, deve-se exibir todas as cidades cadastradas, com seus respectivos estado e países, porém ao se clicar em uma cidade deve-se carregar os dados para o formulario e permitir que o usuario altere esses dados, porem eu nao sei como posso enviar esses dados la pra cima.

Qualquer ajuda é bem vinda, obrigado pela atenção.

ps: o ID não é editavel pelo usúario

O que vc precisa é simplesmente “repintar” o componente com o valor atribuido,no RichFaces isso seria feito com <a4j:support> e reRender.

Vc deve usar o Richfaces 3, pois no richfaces 4 não existe tal componente(a4j:support), vc tem ideia de qual componente posso usar para fazer isso? outra coisa, o valueChangeListener do selectOneMenu é ativado pelo onChange, tem como chama-lo atraves do managedBean ou por alguma outra metodo do selectOneMenu que nao seja o onChange?

parte da pagina que possui a chamada ao selectOneMenu

<h:selectOneMenu immediate="true" valueChangeListener="#{gravaCidade.mudaListaEstado}" onchange="submit()" id="cidPais" value="#{gravaPais.pai_nom}"> <f:selectItem itemLabel="" itemValue="" /> <f:selectItems value="#{gravaPais.paises}" var="u" itemLabel="#{u.pai_nom}" itemValue="#{u.pai_nom}" /> </h:selectOneMenu>

parte do ManagedBean que trata isso

[code]public void mudaListaEstado(ValueChangeEvent event) {

    Session sessao = CriadorDeSessaoNovo.getSession();

    String idString = event.getNewValue().toString();
    System.out.println("String: " + event.getNewValue().toString());

    Criteria listagem_query = sessao.createCriteria(Estado.class).
            createAlias("pais", "es").
            addOrder(Order.asc("es.pai_nom")).
            add(Restrictions.eq("es.pai_nom", idString).
            ignoreCase());
    setEstadosMany(listagem_query.list());        

    FacesContext.getCurrentInstance().renderResponse();
    
    sessao.close();
      
     
}[/code]