Problemas com edit em um dataTable

Galera tenho um dataTable que lista todos os nomes de cliente do banco…
a cada usuario listado, gera um botão excluir e editar do lado… to tendo problemas com ambos… mas creio se resolver o de editar, conseguirei o de excluir…
quando cliko no botao editar… chama outra pagina… mas os dados estão passando pro outro lado tudo zerado e null, assim ele so chama o id = 0, no banco e nunca altera e nem excluir… alguem pode me falar como posso fazer essa passagem de parametro? ja tentei com param, inputHiden e com o tomahalk usando o updatelist tive problema com a uri e os jars… creio eu que o updatelist seria mais facil… mas queria fazer com parametro…
vo postar os codigos>

O problema `e que quando eu cliko em editar… ta passando os valores tudo null incluseve a chave primaria (idusuario), dai nao da pra alterar…

PAGINA QUE LISTA E GERA O BOTAO ALTERAR DO LADO

[code]

<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>

<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

Lista de Usuarios

LISTA DE USUARIOS


		<h:column>
		
		<b>USUARIO</b>	<h:outputText value="#{usuario.nome}"/>
		
		</h:column>
		
			<h:column>
			<h:form id="del">
				<h:commandLink id="idusuario" value="X" action="#{usuarioBean.alterarUsuario}" > 
				<f:param name="idusuario" value="#{usuario.idusuario}"></f:param>
			</h:commandLink>
					</h:form>	
	 	</h:column>

	</h:dataTable>
	
	 <h:form id="dummy" >
	 <h:commandButton id="novo" value="Novo Usuario"  action="#{usuarioBean.novoUsuario}" />    
	 </h:form>
	</f:view>
[/code]

Pagina que Altera

[code]
<%@ taglib uri=“http://java.sun.com/jsf/core” prefix=“f” %>
<%@ taglib uri=“http://java.sun.com/jsf/html” prefix=“h” %>

<%@page contentType=“text/html” pageEncoding=“UTF-8”%>

Alterando Novos Usuarios
<body>
    <h2>Alterar Usuario</h2>

  <f:view>
  <h:form id="cadastro">
  <h:panelGrid columns="2">
  
   

  <h:outputText value=""/>
  <h:outputText value="#{usuarioBean.usuarioPojo.idusuario} "/>

  
    <h:outputText value="Nome:"/>
  <h:inputText size="25" id="nome" value="#{usuarioBean.usuarioPojo.nome}" />

  <h:outputText value="Login:"/>
 <h:inputText size="25" id="login" value="#{usuarioBean.usuarioPojo.login}"/>

  <h:outputText value="Senha:"/>
  <h:inputSecret size="15" id="senha" value="#{usuarioBean.usuarioPojo.senha}"/>

  
  </h:panelGrid>

  <h:commandButton value="Alterar" action="#{usuarioBean.update}" />
  <h:commandButton value="Cancelar" action="mostrar" />

        </h:form>
    </f:view>
</body>
[/code]

MetodoBean

  public String update()throws UsuarioDAOException {
    	
        InterfaceUsuarioDAO icdao = new UsuarioDAO();
        icdao.atualizar(usuarioPojo);
        return "sucesso_up";
    }  

MetodoDAO

   public void atualizar(UsuarioPojo usuarioPojo) throws UsuarioDAOException {
    	
        PreparedStatement ps = null;
        Connection conn = null;
        
        if(usuarioPojo == null)
            throw new UsuarioDAOException("O Valor passado não pode ser lido");
        try {
            String sql = "update usuarios set nome = ?, login=?,  senha =? where idusuario=?";

            conn = this.conn;
            ps = conn.prepareStatement(sql);
            
            ps.setInt(1, usuarioPojo.getIdusuario());
            ps.setString(2, usuarioPojo.getNome());
            ps.setString(3, usuarioPojo.getLogin());
            ps.setString(4, usuarioPojo.getSenha());
          
            ps.executeUpdate();

        } catch (Exception sqle) {
        	
        throw new UsuarioDAOException("Erro ao inserir dados" + sqle);

Ainda tem o pojo mais acho que nao 'e necessario, s’o 'e declaracao de variavel e sets e gets

alguem me ajuda?
exemplos?