estou fazendo um projeto em JSF, e tenho um botão dentro de um dialog, preciso que um método seja chamado quando o botão for clicado, mas ao clicar no botão não ocorre erro, nem entra no método no bean, coloquei um Syste.out.println() pra fazer o teste…
A página xhtml:
<p:dialog header="Detalhes do Cliente" widgetVar="clienteDialog" resizable="false" id="clienteDlg"
showEffect="fade" hideEffect="explode" modal="true">
<p:ajax event="onHide" listener="#{ClienteBean.limpaCombos}"/>
<h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputText value="Nome:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.nome}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputText value="#{ClienteBean.selectedCliente.nome}" rendered="#{ClienteBean.editMode}" required="true" requiredMessage="Informe o Nome" label="Nome" style="text-transform:uppercase"/>
</h:panelGroup>
<h:outputText value="CPF/CNPJ:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.cpfCnpj}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputText id="cpfCnpj" label="cpfCnpj" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.cpfCnpj}" maxlength="14" size="40" required="true" requiredMessage="Informe o CPF/CNPJ" style="text-transform:uppercase"/>
</h:panelGroup>
<h:outputText value="Endereço:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.endereco}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputText id="end" label="end" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.endereco}" maxlength="80" size="50" style="text-transform:uppercase" required="true" requiredMessage="Informe o Endereço"/>
</h:panelGroup>
<h:outputText value="Complemento:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.complemento}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputText id="comple" label="comple" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.complemento}" maxlength="45" size="50" style="text-transform:uppercase" />
</h:panelGroup>
<h:outputText value="Número:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.numero}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputText id="nro" label="nro" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.numero}" maxlength="10" size="40" style="text-transform:uppercase"/>
</h:panelGroup>
<h:outputText value="CEP:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.cep}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputMask id="cep" label="cep" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.cep}" mask="99999-999" required="true" requiredMessage="Informe o Cep"/>
</h:panelGroup>
<h:outputText value="Bairro:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.bairro}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputText id="bairro" label="bairro" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.bairro}" maxlength="30" size="50" style="text-transform:uppercase" />
</h:panelGroup>
<h:outputText value="Telefone1:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.telefone1}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputMask id="tel1" label="tel1" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.telefone1}" mask="(99) 9999-9999" required="true" requiredMessage="Informe o telefone"/>
</h:panelGroup>
<h:outputText value="Telefone2:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.telefone2}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:inputMask id="tel2" label="tel2" rendered="#{ClienteBean.editMode}" value="#{ClienteBean.selectedCliente.telefone2}" mask="(99) 9999-9999"/>
</h:panelGroup>
<h:outputText value="Estado:" />
<h:panelGroup>
<h:outputText value="#{ClienteBean.selectedCliente.uf}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:selectOneMenu id="estado" value="#{ClienteBean.nomeEstado}" rendered="#{ClienteBean.editMode}">
<f:selectItem itemLabel="#{ClienteBean.selectedCliente.uf}" itemValue="#{ClienteBean.selectedCliente.uf}"/>
<f:selectItems value="#{ClienteBean.estados}"/>
<p:ajax update="cidade" listener="#{ClienteBean.atualizaCidades}"/>
</p:selectOneMenu>
</h:panelGroup>
<h:outputText value="Cidade:" />
<h:outputText value="#{ClienteBean.selectedCliente.cidade}" style="font-weight:bold" rendered="#{!ClienteBean.editMode}"/>
<p:selectOneMenu id="cidade" value="#{ClienteBean.nomeCidade}" rendered="#{ClienteBean.editMode}" required="true" requiredMessage="Selecione a Cidade">
<f:selectItem itemLabel="#{ClienteBean.selectedCliente.cidade}" itemValue="#{ClienteBean.selectedCliente.cidade}"/>
<f:selectItems value="#{ClienteBean.cidades}"/>
</p:selectOneMenu>
<f:facet name="footer">
<p:outputPanel rendered="#{ClienteBean.editMode}" layout="block" style="text-align:right">
<p:commandButton value="Salvar" update="tbl1 avisos" actionListener="#{ClienteBean.alterarCliente}"
onclick="clienteDialog.hide()" image="ui-icon ui-icon-check"/>
<p:commandButton value="Cancelar" onclick="clienteDialog.hide()" type="button" image="ui-icon ui-icon-close" actionListener="#{ClienteBean.limpaCombos}"/>
</p:outputPanel>
</f:facet>
</h:panelGrid>
</p:dialog>
O botao é o cancelar que stá no final do código, o actionlistner do botão salvar funciona…
O método no bean:
//Método para Limpar os comobs uf, e cidade
public void limpaCombos(ActionEvent event) {
setNomeEstado(new String());
setNomeCidade(new String());
estados = new HashMap<String, String>();
cidades = new HashMap<String, String>();
}