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