Opa 
Quando utilizo tags como a4j:form ou a4j:commandoButton, notei que as mensagens de erro não são renderizadas e, as vezes, acaba não rolando validação na tela. Alguém sabe como posso resolver isso?
Valeuu
[]'s
Opa 
Quando utilizo tags como a4j:form ou a4j:commandoButton, notei que as mensagens de erro não são renderizadas e, as vezes, acaba não rolando validação na tela. Alguém sabe como posso resolver isso?
Valeuu
[]'s
Coloque o componente h:messages dentro de um a4j:outputPanel e mande reRenderizar o componente.
Bom dia rponte
Coloquei da seguinte maneira:
<h:panelGroup>
....
<a4j:region>
<a4j:commandButton reRender="tabelaVeiculos, painelMensagensAjax" rendered="#{profissional.exibirSubviewCaminhoes}" action="#{profissional.addVeiculo}" styleClass="botao" value="Adicionar Outro Caminhao"/>
</a4j:region>
...
</h:panelGroup>
....
<tr>
<td>
<a4j:outputPanel id="painelMensagensAjax">
<h:messages />
</a4j:outputPanel>
</td>
</tr>
Porém ele não é renderizado e/ou as mensagens não estão sendo lançadas. Se eu alterar para um h:commandButton, ele exibe que os campos não foram preenchidos e não executa a parte de reRenderizar a tabela ( isso seria o correto, não reRenderizar se tiver erro de validação ), mas com o a4j:commandButton ele renderiza numa boa e não exibe a mensagem de erro.
Se eu altero para:
<h:commandButton rendered="#{profissional.exibirSubviewCaminhoes}" action="#{profissional.addVeiculo}" styleClass="botao" value="Adicionar Outro Caminhao">
<a4j:support reRender="tabelaVeiculos, painelMensagensAjax" event="onclick"></a4j:support>
</h:commandButton>
Funciona corretamente, pq ele primeiro valida antes de fazer a chama da ação addVeiculo e eu gostaria que com o ajax fosse assim tb!
Existe alguma forma de só ser executado o ajax se for validado antes?
[]'s
Bom dia rponteColoquei da seguinte maneira:
<h:panelGroup> .... <a4j:region> <a4j:commandButton reRender="tabelaVeiculos, painelMensagensAjax" rendered="#{profissional.exibirSubviewCaminhoes}" action="#{profissional.addVeiculo}" styleClass="botao" value="Adicionar Outro Caminhao"/> </a4j:region> ... </h:panelGroup> .... <tr> <td> <a4j:outputPanel id="painelMensagensAjax"> <h:messages /> </a4j:outputPanel> </td> </tr>Porém ele não é renderizado e/ou as mensagens não estão sendo lançadas. Se eu alterar para um h:commandButton, ele exibe que os campos não foram preenchidos e não executa a parte de reRenderizar a tabela ( isso seria o correto, não reRenderizar se tiver erro de validação ), mas com o a4j:commandButton ele renderiza numa boa e não exibe a mensagem de erro.
Existe alguma forma de só ser executado o ajax se for validado antes?
[]'s
Estranho, os componentes do Ajax4jsf por padrão passam pelo mesmo ciclo de vida, porém através de AJAX. O valor de #{profissional.exibirSubviewCaminhoes} está sempre como true?
Não, quando ele entra na página está como false, o usuário seleciona a opção que quer incluir um veículo ai eu reRenderizo a tela e exiboi o botão e a tela de veículo. O problema está na validação pq ela não está sendo executada quando faço a chamada ajax.
Consegui resolver.
O problema estava pq o botão ajax estava entre as tags a4j:region</a4j:region> e quando eu submetia, ele não passava por nenhum processo de validação!
Obrigado pela ajuda rponte
[]'s