Tenho o seguinte código na minha página xhtml
p:panel id="pnSuporte">
<h:form id="frmSolicitarSuporte">
<p:growl id="mensagem" showDetail="true" showSummary="true">
<h:panelGrid columns="2">
<h:outputText value="Número PA:"/>
<p:inputText size="5" maxlength="4" value="#{solicitacaoBean.solicitacao.numeroPa}" id="numPa"/>
<h:outputText value="Descrição:" />
<p:inputTextarea autoResize="true" effectDuration="200" maxlength="400" maxHeight="300"
value="#{solicitacaoBean.solicitacao.descricao}" id="descricaoSu" />
<p:commandButton actionListener="#{solicitacaoBean.salvarSolicitacao}" value="Solicitar"
update="infoSolicitacao" oncomplete="dialogSolicitacao.show()"/>
</h:panelGrid>
</p:growl>
</h:form>
</p:panel>
<p:dialog header="Informação da Solicitação" widgetVar="dialogSolicitacao" resizable="true"
modal="false" width="400" >
<h:panelGrid id="infoSolicitacao" columns="2">
<h:outputText value="Número do Protocolo:"/>
<h:outputLabel value="#{solicitacaoBean.solicitacao.protocolo}"/>
<h:outputText value="Data Abertura:"/>
<h:outputText value="#{solicitacaoBean.solicitacao.dataAbertura}">
<f:convertDateTime dateStyle="default"/>
</h:outputText>
<h:outputText value="Hora Abertura:"/>
<h:outputText value="#{solicitacaoBean.solicitacao.horaAbertura}">
<f:convertDateTime timeStyle="default"/>
</h:outputText>
<h:outputText value="Usuario solicitante:"/>
<h:outputLabel value="#{usuarioController.usuario.login}"/>
</h:panelGrid>
</p:dialog>
1) Mesmo dando algum erro o o dialog é exibido. Gostaria de saber como fazer para exibi-lo apenas quando não há nenhum erro, ou quando o atributo na classe for diferente de 0, por exemplo;
2) Se utilizar no <p:commandButton > a propriedade ajax="true", mesmo dando erro, o <p:growl> não funciona, quando coloco ajax="false" a mensgaem que coloquei na minha classe para exibir no xhtml aparece, porém o dialog não aparece de forma alguma.
Alguém sabe como resolver estes problemas?
Obrigado!