Sou iniciante em JSF e estou com uma dúvida básica sobre AJAX. Consegui fazer funcionar as chamadas AJAX com curso JSF-1, sem problemas. Porém, brincando um pouco com a aplicação desenvolvida, tentei fazer alguns <h:commandLink>
funcionarem com AJAX, mas a atualização do <h:dataTable>
só aconteceu se eu fizer um <f:ajax render="@form".../>
ou <f:ajax render="meuForm".../>
. É isso mesmo? Qual a parte conceitual envolvida? Segue código abaixo:
<h:form id="formAutores">
<fieldset>
<legend>Autores</legend>
<h:dataTable id="tableAutores" value="#{autorBean.autoresGravados}" var="autor">
<h:column>
<h:outputText value="[ #{autor.id} ] #{autor.nome}"/>
</h:column>
<h:column>
<h:commandLink id="linkRemover" value="remover" action="#{autorBean.removerAutor(autor)}">
<!-- estes executam a remoção do banco de dados mas não atualizam a tela -->
<!-- f:ajax execute="linkRemover" render="tableAutores"/ -->
<!-- f:ajax execute="linkRemover" render=":tableAutores"/ -->
<!-- f:ajax execute="linkRemover" render=":formAutores:tableAutores"/ -->
<!-- estes funcionam !!! -->
<f:ajax execute="linkRemover" render=":formAutores"/>
<!-- f:ajax execute="linkRemover" render="@form"/ -->
</h:commandLink>
</h:column>
</h:dataTable>
</fieldset>
</h:form>