Olá pessoal! Reparem no código abaixo:
<h:form id="formListagem">
<h2>Autores</h2>
<h:dataTable value="#{autorBean.autores}" var="autor" id="autores"
border="1">
<h:column>
<f:facet name="header">Nome</f:facet>
<h:outputText value="#{autor.nome}" />
</h:column>
<h:column>
<f:facet name="header">E-mail</f:facet>
<h:outputText value="#{autor.email}" />
</h:column>
<h:column>
<f:facet name="header">Ações</f:facet>
<h:commandButton value="X" action="#{autorBean.excluir(autor)}">
<f:ajax execute="@this" render="@form :formCadastro:mensagens" />
</h:commandButton>
<h:commandButton value="Editar">
<f:setPropertyActionListener value="#{autor}"
target="#{autorBean.autor}" />
</h:commandButton>
</h:column>
</h:dataTable>
</h:form>
No botão para efetuar a exclusão do registro, somente consigo fazer o ajax funcionar passando @form, mas na minha opinião deveria funcionar passando apenas autores(id do datatable), uma vez que tanto o botão quanto o datatable estão no mesmo form. Alguém pode me explicar o porquê deste comportamento, por favor??
Abraços