Metodo editar nao popula os campos

Gente, por favor me ajudem, estou sem opções!

Estou implementando a minha tela de edição de clientes.Porem quando puxo as informações da tela de pesquisa ele nao popula os campos na tela de cadastro para edição. (Esou usando a tela de Cadastro para editar)

MInha tela de pesquisa está utilizando o seguinte código para pegar o parâmetro

<p:button outcome="/cliente/CadastroCliente.xhtml" icon="ui-incon-pencil" title="Editar" >
                        <f:param name="cliente" value="#{cliente.id}"/>

minha pagina de cadastro de cliente, na qual irá receber o paremetro está assim. Pois estou utilizando o omnifaces.

 <f:metadata>
            <o:viewParam name="cliente" value="#{cadastroClienteBean.cliente}"/>
        </f:metadata>

Minha classe de Clientes (Repository):

@SuppressWarnings("unchecked")
    public List<Cliente> filtrados(ClienteFilter filtro) {
        Session session = manager.unwrap(Session.class);
        Criteria criteria = session.createCriteria(Cliente.class);

        if (StringUtils.isNotBlank(filtro.getCpf())) {
            criteria.add(Restrictions.eq("cpf", filtro.getCpf()));
        }

        if (StringUtils.isNotBlank(filtro.getNome())) {
            criteria.add(Restrictions.ilike("nome", filtro.getNome(), MatchMode.ANYWHERE));
        }

        return criteria.addOrder(Order.asc("nome")).list();
    }

    public Cliente porId(Long id) {
        return manager.find(Cliente.class, id);
    }
}

Classe de ClienteConverter

@FacesConverter(forClass = Cliente.class)
public class ClienteConverter implements Converter{

        //@Inject
        private Clientes clientes;

        public ClienteConverter() {
            clientes = CDIServiceLocator.getBean(Clientes.class);
        }

        @Override
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            Cliente retorno = null;

            if (value != null) {
                Long id = new Long(value);
                retorno = clientes.porId(id);
            }

            return retorno;
        }

        @Override
        public String getAsString(FacesContext context, UIComponent component, Object value) {
            if (value != null) {
                //Cliente cliente = (Cliente) value;
                //return cliente.getId() == null ? null : cliente.getId().toString();
                return ((Cliente) value).getId().toString();
            }

            return "";
        }
    }

Porem quando eu clico no botão de editar, ele Envia o parametro pela url. Porem nao poopula os campos.
Por favor alguem me ajuda! nao sei mais oque fazer. :’(

image