Como validar no action com Ajax?

Tenho um formulário que é salvo via ajax com o RichFaces, gostaria de saber como eu valido no método action antes de salvar.

Por exemplo, nesse form somente se as senhas forem exatamente iguais pode salvar:

[code]<h:form id=“formEditUsuario”>
<h:panelGrid id=“infoUsuario” columns=“2”>
<h:outputLabel for=“nomeInput” value=“Nome Completo”/>
<h:inputText
id=“nomeInput”
size=“50”
value="#{usuarioDTSBean.usuarioSelecionado.nomeReal}"
required=“true”
validatorMessage=“Nome entre 5 e 50 caracteres”>
<f:validateLength minimum=“5” maximum=“50”/>
<rich:ajaxValidator event=“onblur”/>
</h:inputText>

    <h:outputLabel for="senhaInput" value="Senha:"/>
    <h:inputSecret redisplay="true" id="senhaInput" required="true" validatorMessage="Senha entre 5 e 20 caracteres"
                   value="#{usuarioDTSBean.usuarioSelecionado.senha}" style="width:150px">
               <f:validateLength minimum="5" maximum="20"/>
    </h:inputSecret>

    <h:outputLabel for="senhaInput2" value="Confirme a Senha:"/>
    <h:inputSecret redisplay="true" id="senhaInput2" required="true" validatorMessage="Senha entre 5 e 20 caracteres"
                   value="#{usuarioDTSBean.senhaConfirmar}" style="width:150px">
               <f:validateLength minimum="5" maximum="20"/>
    </h:inputSecret>

    <h:outputLabel for="emailInput" value="Email:"/>
    <h:inputText id="emailInput" size="50" value="#{usuarioDTSBean.usuarioSelecionado.email}"/>

    <h:outputLabel for="niveis" value="Nível:"/>
    <h:selectOneMenu id="niveis" value="#{usuarioDTSBean.usuarioSelecionado.nivel}" style="width:150px" >
        <f:selectItems id="usuario" value="#{mainBean.niveisUsuarios}" />
    </h:selectOneMenu>

    <h:outputText value=""/>
    <h:panelGrid columns="2">
        <a4j:commandLink title="Fechar esta janela" ajaxSingle="true" onclick="#{rich:component('editarDadosUsuario')}.hide();return false" value="Fechar" />
        <a4j:commandLink title="Salvar esse cadastro" actionListener="#{usuarioDTSBean.salvar}" oncomplete="#{rich:component('editarDadosUsuario')}.hide()" reRender="nomeReal">Salvar</a4j:commandLink>
    </h:panelGrid>
</h:panelGrid>

</h:form>[/code]

Método salvar no bean:

public void salvar(ActionEvent event) { if (usuarioSelecionado.getSenha().toLowerCase().equals(this.senhaConfirmar.toLowerCase())) { try { usuarioDao.save(usuarioSelecionado); } catch (Throwable ex) { System.out.println("Erro ao salvar usuario: "+ex.getMessage()); Logger.getLogger(UsuarioDataTableScrollerBean.class.getName()).log(Level.SEVERE, null, ex); } } else { // Retornar alguma coisa para a chamada Ajax } }

Não entendi direito sua pergunta, você quer saber como valida na action ou na página, apartir de um xml contendo as regras de validação.
Porque assim, se for na action mesmo, no lugar daquele

if (usuarioSelecionado.getSenha().toLowerCase().equals(this.senhaConfirmar.toLowerCase()))

Você pode chamar um método que faz uma validação mais completa.
Qualquer coisa estamos aqui, se eu não estiver me expressado bem, pergunte ai.

Abraços!