javasf@googlegroups.com
[Top] [All Lists]

Re: [javasf] reRender

Subject: Re: [javasf] reRender
From: Rafael Ponte
Date: Tue, 31 May 2011 09:09:34 -0300
Escopo de conversação, quase certeza. Coloque o managed bean em session e veja se funciona! Depois nos dê um feedback!

2011/5/30 JSergio <java.sergio@xxxxxxxxx>
Boa tarde, galera.

Estou com um problema ao usar o reRender via a4j.

Tenho uma página que tem um radio para Tipo de Pessoa (Pesso Física ou Pessoa Jurídica). No onclick do radio faço um ajax para um actionListener que
carrega combos diferentes em função do radio selecionado. Ao clicar no radio de Pessoa Física eu carrego uma combo de produtos e ao clicar no radio Pessoa Jurídica eu carrego uma combo de Contratos.

O cliente solicitou que não esteja marcada nenhuma das duas opções do radio forçando sua seleção posteriormente. O que acontece com esta abordagem é que o idPanelGroupCoordenacaoLabelInferior e idPanelGroupPostoLabelInferior não são renderizados ao entrar na primeira vez. Os componentes não existirão na página ao serem carregados. Somente aparecem quando o usuário seleciona o radio e via ajax as coisas acontecem.

Até aí funciona perfeitamente através do reRender do a4j. As combos são carregadas e apresentadas com sucesso: ora a combo de produtos ora a combo de contratos.

Porém, quando clico no botão inserir para gravar os dados do formulário o valor da combo escolhida (ou de contrato ou de produtos) não chega ao ManagedBean. Chega null.

Acredito que ao dar reRender o componente não está atualizado a árvore de componentes, mas não estou conseguindo corrigir.

Alguém pode ajudar?




<h:selectOneRadio id="idRadio" value="#{pessoaManagedBean.tipoPessoa}" >
    <f:selectItem itemLabel="Pessoa Fisica"   itemValue="F"/>
    <f:selectItem itemLabel="Pessoa Juridica" itemValue="J"/>
    <a4j:support event="onclick" actionListener="#{pessoaManagedBean.teste}" reRender="idPanelGroupLabelSuperior, idPanelGroupComboSuperior" />
</h:selectOneRadio>


<h:panelGroup id="idPanelGroupLabelSuperior">
    <h:panelGroup id="idPanelGroupCoordenacaoLabelInferior" rendered="#{pessoaManagedBean.tipoPessoa eq 'F'}">
        <h:selectOneMenu value="#{pessoaManagedBean.pessoa.produto}" converter="longConverter" >
            <f:selectItems value="#{pessoaManagedBean.produtoList}" />
        </h:selectOneMenu>                           
    </h:panelGroup>
    <h:panelGroup id="idPanelGroupPostoLabelInferior" rendered="#{pessoaManagedBean.tipoPessoa eq 'J'}">
        <h:selectOneMenu value="#{pessoaManagedBean.pessoa.contrato}" converter="longConverter" >
            <f:selectItems value="#{pessoaManagedBean.contratoList}" />
        </h:selectOneMenu>                                   
    </h:panelGroup>       
</h:panelGroup>   


--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil



--
Rafael Ponte
http://www.rponte.com.br

--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil
<Prev in Thread] Current Thread [Next in Thread>