Pessoal, estou com 2 dúvidas sobre Ajax, mas não encontro nada parecido com isso no GUJ nem na net.
1) Como fazer link (em formato de botão) para a mesma página?
Tenho uma página index.xhtml com 4 forms. No primeiro (formprincipal) há 3 botões que, quando clicados, quero direcionar suas ações para seus respectivos forms (form1 / form2 / form3) na mesma página index.xhtml.
Em JSF, se eu tiver um botão “Página 2” e uma “pagina2.xhtml”, ele abre uma nova página (pagina2.xhtml - claro que ela deve existir). Algo do tipo:
Não quero abrir uma página2.xhtml, mas sim direcionar a action para o form2 na mesma página index.xhtml (quando clicar o botão “Página 2”). Como se faz isso usando Ajax?
<h:commandButton value="Form 2" action="form2">
<f:ajax ???????>
<h:commandButton/>
2) Quando clicar sobre o botão “Confirmar” no form3, desejo renderizar o form3a. Como faço isso com Ajax?
Supondo as ações:
- Em formprincipal, clico sobre o botão “Página 3”;
- Sou “redirecionado” para o form3, na mesma página index.xhtml;
- Faço algo nesse form3 e clico no botão “Confirmar”;
- Renderizo o form3a, que está na mesma página (é claro).
Ou seja: eu tenho de [A]passar os IDs de todos os itens do form3a ou [b]passar apenas o ID do form3a?
[A] Assim?
<h:form id="form3">
<h:commandButton value="Página 3" action="pagina3">
<f:ajax event="action" render="form3a"/>
<h:commandButton/>
</h:form>
<h:form id="form3a">
<h:outputText id="campo1"... ... />
<h:outputText id="campo2"... ... />
<h:outputText id="campo3"... ... />
</h:form>
[b] Ou assim?
<h:form id="form3">
<h:commandButton value="Página 3" action="pagina3">
<f:ajax event="action" render="campo1 campo2 campo3 ... ... "/>
<h:commandButton/>
</h:form>
<h:form id="form3a">
<h:outputText id="campo1"... ... />
<h:outputText id="campo2"... ... />
<h:outputText id="campo3"... ... />
</h:form>
Muito obrigado pessoal!