Datatable + CommandLink

Bom tarde pessoal, estou desenvolvendo uma página aki da seguinte forma:

A página é para cadastrar um usuário:
Nela eu tenho os seguintes campos: Nome Completo, Usuario, Senha e Tipo do Usuário. Estes campos eu uso inputtext, inputsecret para senha e selectonmenu para o tipo do usuário que neste caso eu escolho administrador ou usuário. O código é este:

[code]<h:inputText id=“txtNomeCompleto” value="#{cadUsuario.nomeCompleto}" size=“50” required=“true” requiredMessage=“É necessário informar o Nome Completo”/>
<h:inputText id=“txtUsuario” value="#{cadUsuario.usuario}" size=“8” required=“true” requiredMessage=“É necessário informar o Usuário”/>
<h:inputSecret id=“txtSenha” value="#{cadUsuario.senha}" size=“8” required=“true” requiredMessage=“É necessário informar a Senha”/>
<h:selectOneMenu id=“tipo” value="#{cadUsuario.tipo}">
<f:selectItem itemLabel=“Usuário” itemValue=“U”/>
<f:selectItem itemLabel=“Administrador” itemValue=“A”/>
</h:selectOneMenu>

<h:commandButton id=“btnSalvar” value=“Salvar” action="#{cadUsuario.cadastrar}"/>
<h:commandButton id=“btnLimpar” value=“Limpar” type=“reset”/>[/code]

Eu consigo cadastrar o usuário no banco de dados sem problema nenhum.

Agora vem o problema.

Abaixo da parte da página que eu cadastro o usuário eu uso um datatable para listar todos os usuários cadastrados, e tenho mais duas colunas com 2 command link, um para EDITAR e outro para EXCLUIR. O objetivo deste botões seria que para editar um usuário cadastro, ao clicar no commandlink para editar ele jogasse os dados da linha do botão clicado para os campos que eu utilizo para cadastrar.
E ao clicar no commandlink EXCLUIR ele excluí-se o usuário no banco.

Meu código esta da seguinte forma.

[code]
<h:dataTable id=“lstUsuarios” var=“lstUsuarios” value="#{alterarUsuario.consultar}" styleClass=“tabela”>
<f:facet name=“header”>
<h:outputText styleClass=“fonte”>Lista de Usuários Cadastrados</h:outputText>
</f:facet>
<h:column>

<f:facet name=“header”>
<h:outputText value=“Código”/>
</f:facet>
<h:outputText value="#{lstUsuarios.id}" binding="#{cadUsuario.lnkId}"/>

</h:column>

                 <h:column>
                    <center>
                       <f:facet name="header">
                          <h:outputText value="Nome"/>
                       </f:facet>
                    </center>
                    <h:outputText value="#{lstUsuarios.nomeCompleto}" binding="#{cadUsuario.lnkNomeCompleto}"/>
                 </h:column>

                 <h:column>
                    <center>
                       <f:facet name="header">
                          <h:outputText value="Usuario"/>
                       </f:facet>
                       <h:outputText value="#{lstUsuarios.usuario}" binding="#{cadUsuario.lnkUsuario}"/>
                    </center>
                 </h:column>

                 <h:column>
                    <center>
                       <f:facet name="header">
                          <h:outputText value="Tipo"/>
                       </f:facet>
                       <h:outputText value="#{lstUsuarios.tipo}" binding="#{cadUsuario.lnkTipo}"/>
                    </center>
                 </h:column>

                 <h:column>
                    <center>
                       <f:facet name="header">
                          <h:outputText value="Alterar"/>
                       </f:facet>

                       <h:commandLink id="editarUsuario" action="editar" actionListener="#{.alterar}">
                          <img src="../imagens/editar.gif" alt="Alterar Cadastro de Usuários">
                       </h:commandLink>
                    </center>
                 </h:column>

                 <h:column>
                    <center>

                       <f:facet name="header">
                          <h:outputText value="Excluir"/>
                       </f:facet>

                       <h:commandLink id="excluirUsuario" actionListener="#{cadUsuario.excluir}">
                          <img src="../imagens/excluir.gif" alt="Alterar Cadastro de Usuário">
                       </h:commandLink>

                    </center>
                 </h:column>
              </h:dataTable>[/code]

O método alterarUsuario.consultar retorna um arraylist que preenche a tabela, usei um binding para ligar cada item da tabela a um atributo do tipo output e com isso ao clicar no commandlink EDITAR ele atribuiria os valores capturados anteriormente aos atributo da classe cadUsuario. Com isso ele preencheria os campos de cadastro do usuário só que com um usuário já existe.

O meu problema acontece que qdo eu aciono o link EDITAR ele sempre executa o método alterarUsuario.consultar.

Sou novo em JSF e estou apanhando feio para fazer isso.

Meu faces-config está desta forma:

[code]<?xml version='1.0' encoding='UTF-8'?>



Usuario
beans.UsuarioBeans
session


cadUsuario
beans.UsuarioBeans
request


alterarUsuario
Classes.Usuario
request


/logon.jsp

logado
/sist/index.jsp


usuarioSalvo
/sist/cadusuario.jsp



/sist/cadusuario.jsp

alterarUsuario
/sist/cadusuario.jsp


[/code]

Já procurei no fórum só que não achei nada que poderia me ajudar.

Agradeço a ajuda de vocês.

Alguém?