JSF: Dúvida na utilização do componente "Support" do A4j [RESOLVIDO]

Olá pessoal.

Estou com um formulário aqui que funciona da seguinte forma:
O primeiro campo é um combobox, que quando é selecionado um item, eu vou no meu managed bean e através do value do combobox, faço uma consulta no banco, e retorno os valos de todos os campos do form.

beleza, até aí tudo bem, porém, eu preciso que esses campos sejam preenchidos antes de submeter o form, mas quando eu uso o atributo required=“true” em algum componente do form, e vou selecionar o item no combobox, ele nem vai no managed bean, meio estranho né? :smiley:

Vou mostrar +ou- como tô fazendo:

<h:form id="formDocumento"> <table> <tr style="border-color: #EDEADD"> <td>Documento:</td> <td> <h:selectOneMenu id="documento" binding="#{documentoMB.documento}"> <a4j:support actionListener="#{documentoMB.carregarDocumentoAction}" event="onchange" reRender="formDocumento"/> <f:selectItem itemLabel="- Selecione -"/> <f:selectItems value="#{auxiliarMB.listaDeDocumentosPendentesPorEmitente}"/> </h:selectOneMenu> </td> </tr> <tr> <td>Contato:</td> <td> <h:inputText id="contato" binding="#{documentoMB.contato}" required="true" requiredMessage=" Preencha este campo!"/> <rich:message for="contato"> <f:facet name="errorMarker"><h:graphicImage value="/_img/stop.png"/></f:facet> </rich:message> </td> </tr> </table> <h:commandButton actionListener="#{documentoMB.salvarDocumentoAction}" value="Salvar"/> </h:form>

Então, quando eu selecionasse um item do combo, o campo “contato” deveria ser carregado mas não foi, exceto quando eu tiro o atributo required=true do campo contato.

Alguém pode me dar uma luz? :smiley:
Agradeço desde já! :smiley:

Alguém? =/

Minha explicação está ruim?
Ninguém faz nem idéia do motivo disto estar acontecendo?

Eu acho que é pq quando eu seleciono o item do combo, e ativo o “support”, é como se eu tivesse dado um submit no form, e os messages dos campos disparam, eu só queria que a aplicação entendesse que essa ação do combo é uma ação a parte e não pra submeter o form…

Agradeço quem puder tentar ajudar :smiley:

Pra quem estiver com o mesmo problema, a solução que consegui foi esta:

[code]
<h:form>
<table>
<tr style=“border-color: #EDEADD”>
<td>Documento:</td>
<td>
<h:selectOneMenu id=“documento” binding="#{documentoMB.documento}">
<a4j:support actionListener="#{documentoMB.carregarDocumentoAction}" event=“onchange” reRender=“formDocumento”/>
<f:selectItem itemLabel="- Selecione -"/>
<f:selectItems value="#{auxiliarMB.listaDeDocumentosPendentesPorEmitente}"/>
</h:selectOneMenu>
</td>
</tr>
</table>
</h:form>

<h:form id=“formDocumento”>
<table>
<tr>
<td>Contato:</td>
<td>
<h:inputText id=“contato” binding="#{documentoMB.contato}" required=“true” requiredMessage=" Preencha este campo!"/>
<rich:message for=“contato”>
<f:facet name=“errorMarker”><h:graphicImage value="/_img/stop.png"/></f:facet>
</rich:message>
</td>
</tr>
</table>
<h:commandButton actionListener="#{documentoMB.salvarDocumentoAction}" value=“Salvar”/>
</h:form>[/code]

O que fiz foi tirar o combo do form onde estão todos os outros campos, e deixá-lo com um form próprio, aí ele submete sim, o form dele, e re-renderiza o form de baixo onde estão os outros campos, bem óbvio né…

pura falta de atenção… :smiley:

Cara nem precisava fazer tudo isso que vc fez, era só colocar o atributo ajaxSingle=“true” que ele submete apenas a combo e nao o form, mais simples ainda

Po amigão vou fazer um teste lá, acabei deixando daquele jeito mesmo aquele formulário que mostrei, mas do jeito que vc está falando é bemm melhor! :smiley:
valeu pela ajuda! :smiley:

Abração!