Ajuda no JSP Primefaces com <p:confirmDialog/>

Bom dia !
Estou com um problema no datatable e o confirmDialog JSF Primefaces.

O meu datatable tem 5 colunas:

1ª coluna = nome do usuário
1ª coluna = tipo de usuário
1ª coluna = senha
1ª coluna = Botão editar
1ª coluna = botão excluir

os dados vem do banco de dados PostGreSQL, os dados carregam normalmente, só que quando eu clico no botão excluir de qualquer row da datatable ele deleta os dados da primeira linha e não da linha que selecionei, sempre é assim. Bom eu quero deletar a linha que selecionei, se eu clicar no botão excluir da linha 5 eu quero apagar os dados da linha 5.

Por favor, já fiz muitos testes: Só consigo apagar os dados da primeira linha do datatable.

Obrigado !!

datatable

p:dataTable id="dattusuarios" var="users" value="#{usuarioBean.user}" style="text-align:center" editable="true" paginator="true" rows="10" >
					
<f:facet name="header">Tabela de Usuarios</f:facet>
					
<p:ajax event="rowEdit" listener="#{usuarioBean.onEdit}" update=":form:messages" />  
        				           		
	<p:column headerText="Nome do Usuário" style="width:30%">  
	            <p:cellEditor>  
	                <f:facet name="output">  
	                    <h:outputText value="#{users.usuNome}" />  
	                </f:facet>  
	                <f:facet name="input">  
	                    <p:inputText value="#{users.usuNome}" style="width:100%"/>  
	                </f:facet>  
	            </p:cellEditor>  
        </p:column>  
			        
        <p:column headerText="Tipo de Usuário" style="width:30%">  
	            <p:cellEditor>  
	                <f:facet name="output" >  
	                    <h:outputText value="#{users.usuTipoUsuario}" align="center" />  
	                </f:facet>  
	                <f:facet name="input">  
	                    <p:inputText value="#{users.usuTipoUsuario}" style="width:100%"/>  
	                </f:facet>  
	            </p:cellEditor>  
        </p:column>  
			        
        <p:column headerText="Senha" style="width:30%">  
	            <p:cellEditor>  
	                <f:facet name="output">  
	                    <h:outputText value="#{users.usuSenha}" />  
	                </f:facet>  
	                <f:facet name="input">  
	                    <p:password value="#{users.usuSenha}" style="width:100%"/>  
	                </f:facet>  
	            </p:cellEditor>  
        </p:column>  
			        
        <p:column headerText="Editar" style="width:5%">  
     			<p:commandButton action="#{usuarioBean.onEdit}" icon="ui-icon-document-b" > 
            				
			</p:commandButton>  
	</p:column>  
	<p:column headerText="Excluir" style="width:5%"> 
      			<p:commandButton actionListener="#{usuarioBean.onCancel}" icon="ui-icon-trash"  onclick="confirmation.show()" > 
				
       			</p:commandButton>
	</p:column>       	
</p:dataTable>

MeuBean

package br.com.livros.controle;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import br.com.livros.dao.UsuarioDAO;
import br.com.livros.modelo.Usuario;

@ManagedBean(name="usuarioBean")
@ViewScoped
public class UsuarioBean {	
	
	private Usuario usuario = new Usuario();
	private List<Usuario> user = new ArrayList<Usuario>();
	UsuarioDAO userdao = new UsuarioDAO();
	
	public Usuario getUsuario() {		
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public String Salvar(){	
		UsuarioDAO usuariodao = new UsuarioDAO();		
		usuariodao.AdicionarUsuario(this.usuario);
		this.usuario = new Usuario();
		return "";
	}
	public String onEdit(){	
		
		return "";
		
	}
	public String onCancel(){
		String parametro = "";  
		Integer i = 0;
        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest();       
        
        if(req.getParameter("usuId") != null && !req.getParameter("usuId").equals("")) 
        	{   
            
            i = Integer.parseInt(parametro);
           usuario.setUsuCodigo(i); 
           userdao.ExcluirUsuario(usuario);   
           /this.usuario = new Usuario();
        	}
		return "";		
	}
	
	public List<Usuario> getUser() {
		user = userdao.listarUsuario();		
		return user;
	}

	public void setUser(List<Usuario> user) {
		this.user = user;
	}

}

UsuarioDAO

public void ExcluirUsuario(Usuario u){
    	
    	FacesContext facesMessage = FacesContext.getCurrentInstance(); 
    	try{
    	AnnotationConfiguration cfg = new AnnotationConfiguration();
        cfg.addAnnotatedClass(Usuario.class);

        this.session.beginTransaction();
        //this.session.merge(u);
        this.session.flush();  
        this.session.clear();        
        this.session.delete(u);
        this.session.getTransaction().commit(); 
        
        
                      	
    	facesMessage.addMessage("login:messagess",  new FacesMessage("Usuário foi excluido com sucesso ! ")); 	
	             		
        		 	
    	}catch(Exception e)
	    	{
    		facesMessage.addMessage("login:messagess",  new FacesMessage("Não foi possível excluir o Usuário"));	
	    	}
      
        }