Eu possuo um select one radio e preciso fazer o seguinte: Se a opção 1 for selecionada, eu tenho que renderizar o painel 1, se a opção 2 for selecionada, o painel 1 tem que ser escondido e o painel 2 tem que aparecer. Se fosse só um painel eu resolveria com o evento onchange, mas como são dois eu tô me batendo na lógica, como eu posso fazer ?
O que vc já fez?
Basicamente vc vai usar a opção rendered nos dois e precisará de um componente que tenha os dois dentro, desse modo vc manda o update nesse componente que contém os dois panels, o resto é automático …
Eu fiz o seguinte por enquanto, criei duas variáveis booleanas, cada uma para cada item do radio button, e ainda dentro do radio button eu uso evente change e update para a atualizar o painel.
Esse painel, agrupa dois outros paineis, cada um possui um rendered, onde teoricamente, quando a página abrisse, os dois estariam escondidos, e após selecionar um, sempre um vai ficar como true e outro como falso.
Meu código que não funciona
<p:outputPanel id="panelGeral">
<p:panel id="panelempresa1" rendered="#{alunoMB.rbEmpresa}">
<div class="ui-g-12">
<p:outputLabel for="estado2" value="Estado:" />
</div>
<div class="ui-g-12">
<p:inputText id="estado2" value="#{alunoMB.estagio.aluno.nomeEstado}" styleClass="form-control" readonly="true"/>
<p:message for="estado2"/>
</div>
</p:panel>
<p:panel id="panelempresa2" rendered="#{alunoMB.rbEmpresa}">
<div class="ui-g-12">
<p:outputLabel for="estado" value="Estado:" />
</div>
<div class="ui-g-12">
<p:inputText id="estado" value="#{alunoMB.estagio.aluno.nomeEstado}" styleClass="form-control" readonly="true"/>
<p:message for="estado"/>
</div>
</p:panel>
</p:outputPanel>
Meu Radio button
<p:outputLabel for=“empresa” value=“Escolha um:” />
<p:selectOneRadio id=“empresa”>
<f:selectItem itemLabel=" item 1" itemValue="#{alunoMB.rbEmpresa}" />
<f:selectItem itemLabel=“item 2” itemValue="#{alunoMB.rbEmpresa2}" />
<p:ajax update=“panelGeral” event=“change”/>
</p:selectOneRadio>
<p:message for=“empresa” />
Voce precisa definir um value pro selectOneRadio
Exemplo:
<p:selectOneRadio id="console" value="#{radioBean.console}">
Os seus dois rendered tem a mesma condição, acredito que não seja isso que voce quer
Outra coisa, que tipo de dado é o rbEmpresa? Do jeito que voce esta fazendo, so vai funcionar se for boolean