reRender do a4j

Tenho uma página com um form onde insere dados em uma tabela e logo abaixo outro form com um rich:dataTable onde aparece esses registros. Na frente de cada registro há o botão excluir. Quando faço uma inserção o form com o dataTable é redesenhado e aparece o registro, porém quando clico no excluir, o form com o dataTable não é redesenhado. Meu projeto usa Facelets, Seam e RichFaces. Segue o código:

Página:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:s="http://jboss.com/products/seam/taglib"
                xmlns:rich="http://richfaces.org/rich"
                xmlns:a="http://richfaces.org/a4j"
                xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
                template="./../layout/template.xhtml">

    <ui:define name="body">
        <h:form>
            <s:validateAll>
                <f:facet name="arroundInvalidField">
                    <s:span styleClass="errors"/>
                </f:facet>
                <f:facet name="afterInvalidField">
                    <s:message showSummary="true" showDetail="false"/>
                </f:facet>
                <h:panelGroup id="palavraForm">

                    Palavra<s:decorate>
                        <h:inputText value="#{verbeteAction.verbete.palavra}"/>
                    </s:decorate>
                    Definicao<s:decorate>
                        <h:inputText value="#{verbeteAction.verbete.definicao}"/>
                    </s:decorate>
                </h:panelGroup>
                <a4j:commandButton id="salvar" value="Salvar"
                                   action="#{verbeteAction.salvarVerbete}"
                                   reRender="palavraForm, listaForm" limitToList="false"/>
                <a4j:region>

                    <a4j:commandButton id="nova" value="Nova"
                                       action="#{verbeteAction.novaPalavra}"
                                       reRender="palavraForm" limitToList="false"/>
                </a4j:region>
            </s:validateAll>
        </h:form>

        <h:form id="listaForm" prependId="false">
                <rich:dataTable value="#{verbetes}"
                                var="plvr" id="ListaPalavra">
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="id"/>
                        </f:facet>
                        <h:outputText value="#{plvr.id}"/>

                    </rich:column>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="palavra"/>
                        </f:facet>
                        <h:outputText value="#{plvr.palavra}"/>

                    </rich:column>
                    <rich:column>
                        <f:facet name="header">
                            <h:outputText value="Ação"/>
                        </f:facet>
                        <s:button id="ex" value="Excluir" action="#{verbeteAction.excluirVerbete}">
                            <a:support event="onblur" reRender="listaForm" ajaxSingle="true" />
                        </s:button>
                    </rich:column>
                </rich:dataTable>
        </h:form>
    </ui:define>
</ui:composition>

Action:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fachada;

import java.util.ArrayList;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.datamodel.DataModel;
import org.jboss.seam.annotations.datamodel.DataModelSelection;
import org.jboss.seam.faces.FacesMessages;
import persistencia.Verbete;

/**
 *
 * @author Samuel
 */
@Name("verbeteAction")
@Scope(ScopeType.CONVERSATION)
public class VerbeteAction {

    private Verbete verbete = new Verbete();
    @In
    private Session seamDataBase;
    @DataModel
    private List<Verbete> verbetes;
    @DataModelSelection("verbetes")
    private Verbete verbeteSelecionado;

    public VerbeteAction() {
    }

    public Verbete getVerbete() {
        return verbete;
    }

    public void setVerbete(Verbete verbete) {
        this.verbete = verbete;
    }

    @Factory("verbetes")
    public void verbetes() {
        verbetes = seamDataBase.getNamedQuery("listar").list();
    }

    public Verbete getVerbeteSelecionado() {
        return verbeteSelecionado;
    }

    public void setVerbeteSelecionado(Verbete verbeteSelecionado) {
        this.verbeteSelecionado = verbeteSelecionado;
    }


    public String salvarVerbete() {
        if (validarPalavra()) {
            seamDataBase.saveOrUpdate(verbete);
            return "verbeteCadastrado";
        }
        return "verbeteExistente";
    }

    public void editarVerbete() {
        verbete = verbeteSelecionado;
    }

    public void excluirVerbete() {
        seamDataBase.delete(seamDataBase.merge(verbeteSelecionado));
        System.out.println("excluiu");
    }

    public void novaPalavra() {
        verbete = new Verbete();
    }

}

Porque o Salvar é um a4j:commandButton e o Excluir é um s:button ??

O Command está renderizando legal… testa com ele e vê se funciona… normalmente eu utilizo esses reRender para painéis Ajax (a4j:outputPanel) que defino para áreas que eu queira redesenhar…

Testa aí… Falows :wink:

Eu forcei a atualização da lista no método excluir, ai funcionou beleza. Eu pensei que na hora da renderização do componente ele chamasse o Factory novamente, mas pelo que parece tem que fazer na mão. Então no método excluir só acrescentei:

    public void excluirVerbete() {
        seamDataBase.delete(seamDataBase.merge(verbeteSelecionado));
        verbetes();
        System.out.println("excluiu");
    }