I don’t know if it is a common problem, but this strange problem is giving me some headache…
I’m having an strange behavior, my application has a lot of dialogs, and when user opens one, the dialog should show default content. The problem is that I clear all bean’s properties before show the dialog, but sometimes it appears that the form isn’t cleared!!
For example, this is one of the dialogs that are having this problem:

This image show how the dialog appears the first time I open it, all fields are cleared and the second radio is selected. If I change the radio selection and enter something in the input field, the datatable immediately shows the data accordingly with the search. So, if I click in “Cancelar” (cancel in portuguese), this dialog is closed, like expected.
Then I open this dialog again and:

The fields store the last edition user made. I thought I wasn’t clearing the bean, but if I just press F5 (refresh) the dialog is shown like in the first image. I don’t know why, but some fields aren’t updated!!
My dialogs are created using this template:
<ui:component>
<hrgi:popup id="#{idPopup}" titulo="#{titulo}" renderizar="#{popup.visivel}"
bordaConteudo="#{bordaConteudo eq null?true:bordaConteudo}">
<f:facet name="cabecalho">
<ui:insert name="cabecalho"></ui:insert>
</f:facet>
<f:facet name="conteudo">
<h:panelGroup id="#{idPopup}Conteudo" layout="block" style="width:100%">
<p:focus/>
<ui:insert name="conteudo">Nenhum conteúdo definido!</ui:insert>
</h:panelGroup>
</f:facet>
<f:facet name="botoes">
<h:panelGroup style="width:100%">
<h:panelGrid id="#{idPopup}PainelMensagens" style="width:100%">
<p:messages/>
</h:panelGrid>
<ui:insert name="barraDeBotoes">
<h:panelGroup layout="block" style="width:100%">
<p:commandButton value="CANCELAR" styleClass="hrgi-botao-popup"
immediate="true" update="@form"
action="#{controladorPopup.fechar}"/>
<p:commandButton value="OK" styleClass="hrgi-botao-popup"
action="#{controladorPopup.submit}" update="@form alerta #{atualizar}">
<f:param name="REQUIRED" value="true"/>
</p:commandButton>
</h:panelGroup>
</ui:insert>
</h:panelGroup>
</f:facet>
</hrgi:popup>
</ui:component>
The dialog shown in the print is created this way:
<ui:composition template="../templates/popupSubmit.xhtml">
<ui:param name="titulo" value="#{cadastroMsg['popup.cadastro.listagem_empresa.titulo']}" />
<ui:param name="popup" value="#{modeloPopupBuscaEmpresa}" />
<ui:param name="controladorPopup" value="#{controladorPopupBuscaEmpresa}" />
<ui:define name="conteudo">
<h:panelGroup layout="block" styleClass="hrgi-div-form clearfix">
<hrgi:listagem listenerBusca="#{controladorListagemEmpresa}"
valorBusca="#{modeloListagemEmpresa.valorBusca}">
<f:facet name="filtrosAdicionais">
<h:panelGroup layout="block">
<h:outputText value="#{msgGerais['gerais.listagem.filtro']}"/>
<h:selectOneRadio value="#{modeloListagemEmpresa.tipoFiltro}" immediate="true">
<f:selectItem itemLabel="CNPJ" itemValue="0"/>
<f:selectItem itemLabel="Apelido" itemValue="1"/>
<f:ajax event="change" immediate="true"
render="tabelaListagem"
listener="#{controladorListagemEmpresa.atualizarTipoFiltro}"/>
</h:selectOneRadio>
</h:panelGroup>
</f:facet>
<f:facet name="tabela">
<h:panelGroup layout="block" style="height: 219px; width: 103%">
<p:dataTable value="#{modeloListagemEmpresa.itens}"
scrollable="true" height="194" var="empresa"
emptyMessage="#{msgGerais['gerais.sem_dados']}"
selectionMode="single" onRowUnselectUpdate="painelInformacoes"
selection="#{modeloListagemEmpresa.itemSelecionado}"
onRowSelectUpdate="painelInformacoes">
<p:column style="width:20%"
headerText="Documento">
<h:outputText value="#{empresa.cnpj}"/>
</p:column>
<p:column style="width:80%"
headerText="Apelido">
<h:outputText value="#{empresa.nomeEmpresa}"/>
</p:column>
</p:dataTable>
</h:panelGroup>
</f:facet>
<f:facet name="informacoes">
<ui:include src="../../outros/painelInformacoesBasicasEmpresa.xhtml">
<ui:param name="modeloPopup" value="#{modeloListagemEmpresa}"/>
<ui:param name="pessoaSelecionada" value="#{controladorListagemEmpresa.pessoaSelecionada}"/>
</ui:include>
</f:facet>
</hrgi:listagem>
<p:messages/>
</h:panelGroup>
</ui:define>
</ui:composition>
if I change the template code of “Cancelar” button, just removing immediate=true it works fine:
<p:commandButton value="CANCELAR" styleClass="hrgi-botao-popup"
update="@form"
action="#{controladorPopup.fechar}"/>
but in others dialog I have fields that are required and need validation…
Could someone explain me why is it happening??
I’ve solved this problem with the first approach here
So I’ve created a method cancelar:
now button cancelar works this way: