Problemas com Parametros - JSP

Boa Tarde!!

Estou com problemas com jsp. Tenho uma página de produdos por categorias que, a partir dela, chama os detalhes do produto a ser comprado. Na pagina produdos por categorias, tudo ok, estou com problemas na chamada dos detalhes dos produtos conforme segue.

Aqui, chama o mesmo método da página em que estou (ProdutoFacade.produtosByCateg)

...
 <h:dataTable  value='#{ProdutoFacade.produtosByCateg}' var='item' border="1" cellpadding="2" cellspacing="0">
                    <h:column>
                        <h:outputText value="#{item.cod_prod}"/>
                    </h:column>
                    <h:outputText value=" "/>
                    <h:column>
                       <h:outputText value="#{item.descricao}"/>

                    <h:commandLink action="#{ProdutoFacade.detalhesProduto}" value="Detalhe">
                    <f:param name="cod_prod" value="#{item.cod_prod}"/>
                    </h:commandLink>                   
                   </h:column>
                </h:dataTable>

Aqui chama a página de detalhes normalmente, mas não traz nada dos dados, porque o parametro cod_prod, embora mostrado na página vai nulo


               <h:dataTable  value='#{ProdutoFacade.produtosByCateg}' var='item' border="1" cellpadding="2" cellspacing="0">
                    <h:column>
                        <h:outputText value="#{item.cod_prod}"/>
                    </h:column>
                    <h:outputText value=" "/>
                    <h:column>
                        <h:outputText value="#{item.descricao}"/>
                    </h:column>
                    <a href="/svo/lojavirtual/DetalhesProduto.faces">Detalhes Produto</a>
                    <f:param name="cod_prod" value="#{item.cod_prod}"/>
                </h:dataTable>
Seguem os metodos e a declaracao do faces-config.xml

package beans;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import org.hibernate.Session;
import util.HibernateUtil;

public class ProdutosDetalhes extends Produto {
    private String imageUrl;
    private String imageDir;
    private ProdutoFacade produtofacade;
    private ProdutosDetalhes produtodetalhes;
    private Produto produto;
    int cod_prod;
    String descricao;
    float valor_revenda;

    public ProdutosDetalhes() {
        Session session = HibernateUtil.currentSession();
        ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
        HttpServletRequest request = (HttpServletRequest)ec.getRequest();
        if (ec!=null) {
//        int param = Integer.parseInt(request.getParameter("cod_prod"));
      Produto produto = (Produto)produtofacade.getdetalhesProduto();
            setCod_prod(cod_prod);
            setDescricao(produto.getDescricao());
            setValor_revenda(produto.getValor_revenda());
        }
    }
    public String getImageDir() {
        return imageDir;
    }
    public void setImageDir(String imageDir) {
        this.imageDir = imageDir;
    }
   /* public String getImageUrl() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        String contextPath =
                facesContext.getExternalContext().getRequestContextPath();
        return getImageDir() + getId() + ".gif";
    }
    public void setImageUrl(String url) {
        this.imageUrl = url;
    }

    private String getId() {
        return null;
    }*/

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public void setProdutofacade(ProdutoFacade produtofacade) {
        this.produtofacade = produtofacade;
    }

    public int getCod_prod() {
        return cod_prod;
    }

    public void setCod_prod(int cod_prod) {
        this.cod_prod = cod_prod;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public float getValor_revenda() {
        return valor_revenda;
    }

    public void setValor_revenda(float valor_revenda) {
        this.valor_revenda = valor_revenda;
    }
}


(Metodo no produto Facade)

 public Produto getdetalhesProduto() {
     Session session = HibernateUtil.currentSession();
    ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
    HttpServletRequest request = (HttpServletRequest)ec.getRequest();
    int param = Integer.parseInt(request.getParameter("cod_prod"));
    org.hibernate.Query query = session.createQuery(
                " select produto " +
                " from  " +
                " Produto as produto " +
                "  where  " +
                " produto.prod_cat = " + 1 );
     Produto produto = null;
     try {
         Iterator iterator = query.iterate();         
         while (iterator.hasNext()) {
             int cod_prod_det = produto.getCod_prod();
             String descricao = produto.getDescricao();
             float valor_revenda = produto.getValor_revenda();
             produto = new Produto(cod_prod, descricao, valor_revenda);
         }
     } catch (Exception e) {
     }
     return produto;
 }

    <managed-bean>
        <managed-bean-name>ProdutosDetalhes</managed-bean-name>
        <managed-bean-class>beans.ProdutosDetalhes</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
Se puderem me auxiliar, agradeço