[Resolvido] JFS - SelectOneMenu carregar conteudo de outro selectOneMenu

Olá
Estou com um problema que pesquisei em alguns foruns e vi alguns exemplos que não consegui implementar
Estou usando JSF 2.0 - Tomcat - PrimeFaces
Estou fazendo um sistema de vendas onde tem um selectonemenu com as formas de pagamento que ao ser selecionada deve carregar o conteudo de outro selectonemenu com os parcelamentos possíveis.
Uma solução semelhante a isso é um menu com as UF de estados que as ser selecionada carrega as cidades em outro menu.

Tentei usar valueChangeListener sem nenhum sucesso

Se alguem ja fez algo semelhante e puder me mostrar o trecho do codigo que faz isso funcionar.

Bom,no RichFaces com JSF 1.2 seria mais ou menos isso:

<h:selectOneMenu id=“estado”>
<a4j:support event=“onchange” actionListener="#{controller.populaCidades}" reRender=“cidade”>
</h:selectOneMenu>

<h:selectOneMenu id=“cidade”>

</h:selectOneMenu>

No exemplo estado-cidade uso um converter. Veja se consegue adaptar o código

<h:outputLabel value="Estado"/>
                                <h:selectOneMenu value="#{bean.estado_selecionado}"
                                                 id="estado"
                                                 >
                                    <f:selectItems value="#{bean.estados}"
                                                   var="estado"
                                                   itemLabel="#{estado.nome}"
                                                   itemValue="#{estado.codigo_estado}" />

                                    <p:ajax listener="#{bean.refreshEstado}"
                                            event="change" update="cidade" process="estado" />
                                </h:selectOneMenu>

                                <h:outputLabel value="Cidade"/>
                                <h:selectOneMenu id="cidade" value="#{bean.endereco.cidade}" converter="converteCidade">
                                    <f:selectItems value="#{bean.cidades}"
                                                   var="cidade"
                                                   itemLabel="#{cidade.nome}"
                                                   itemValue="#{cidade}" />
                                </h:selectOneMenu>
[code]public void refreshEstado(){

        loadCidades(estado_selecionado);
}[/code]

Fala Lucas, =)) eu tava fazendo algo parecido isso esses dias pow,

tenta algo como:

<h:selectOneMenu value="#{bean.objeto}">
    <f:selectItems value="#{bean.valores}" var="item" itemLabel="#{item.descricao}" itemValue="#{item}"/>
    <p:ajax event="change" listener="#{bean.mudanca}" process="@form" update="idSegundoMenu"/>
</h:selectOneMenu>

tem também o f:ajax que funciona de forma semelhante…

Abraços.

Antes de pesquisar na internet eu tinha feito o segundo menu atualizar quando o valor do primeiro era alterado.
O Código parecido com o do gilvan mas com o f:ajax
O que eu não consegui foi pegar o valor do primeiro selectonemenu para poder pesquisar no banco os valores que serão inseridos no segundo selectonemenu
Pra poder saber quais cidades carregar eu preciso saber o estado que foi selecionado

Consegui
o codigo ficou mais ou menos assim

Página JSF

<h:form id="formTeste">
            <h:selectOneMenu value="#{vendaBean.formaPagamento}" >
                <f:selectItems var="formaPagamento" itemLabel="#{formaPagamento.descricao}" itemValue="#{formaPagamento}" value="#{vendaBean.formaPagamentoList}" />
                <p:ajax event="change" listener="#{vendaBean.parcelasAtualizar}" process="@form" update="formTeste" />
            </h:selectOneMenu>
            <h:selectOneMenu id="id1" >
                <f:selectItems value="#{vendaBean.parcelaList}" />
            </h:selectOneMenu>
        </h:form>

Classe ManagedBean

ArrayList<Integer> a = new ArrayList<Integer>();

    public ArrayList<Integer> getParcelaList() {
        return a;
    }

    public void parcelasAtualizar() {
        a = new ArrayList<Integer>();
        //codigo pra carregar itens em a
    }

Olha ae a solução, com o código completo, esse llucas estuda comigo, ele não serve não para ser professor, rsrs,
posta as coisas pela metade…

teste.xhtml

[code] <h:form id=“formulario”>
<h:selectOneMenu id=“cbxUm” value="#{testeBean.valor1}">
<f:selectItems value="#{testeBean.valoresPara1}" var=“item” itemLabel="#{item}" itemValue="#{item}"/>
<p:ajax event=“change” listener="#{testeBean.preenche2}" process="@form" update=“formulario”/>
</h:selectOneMenu>

        <h:selectOneMenu id="cbxDois" value="#{testeBean.valor2}">
            <f:selectItems value="#{testeBean.valoresPara2}" var="item2" itemLabel="#{item2}" itemValue="#{item2}"/>
        </h:selectOneMenu>
    </h:form>[/code]

testeBean.java

[code]package br.ufac.scrum.beans;

import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class testeBean {

private String valor1;
private String valor2;

private ArrayList<String> valoresPara1;
private ArrayList<String> valoresPara2;

public String getValor1() {
    return valor1;
}

public void setValor1(String valor1) {
    this.valor1 = valor1;
}

public String getValor2() {
    return valor2;
}

public void setValor2(String valor2) {
    this.valor2 = valor2;
}

public ArrayList<String> getValoresPara1() {

    valoresPara1 = new ArrayList<String>();

    valoresPara1.add("Acre");
    valoresPara1.add("Paraiba");

    return valoresPara1;
}

public void setValoresPara1(ArrayList<String> valoresPara1) {
    this.valoresPara1 = valoresPara1;
}

public ArrayList<String> getValoresPara2() {
    return valoresPara2;
}

public void setValoresPara2(ArrayList<String> valoresPara2) {
    this.valoresPara2 = valoresPara2;
}

public void preenche2() {
    valoresPara2 = new ArrayList<String>();

    if(valor1.equals("Acre")) {
        valoresPara2.add("Rio Branco");
        valoresPara2.add("Cruzeiro do Sul");
        valoresPara2.add("Brasileia");
    } else {
        valoresPara2.add("João Pessoa");
        valoresPara2.add("Campina Grande");
    }
}

}[/code]