Fala Gente!!
Estou criando um carrinho de compras utilizando Hibernate-3 e jsf. A partir da página de detalhes do produto, o próximo passo é o carrinho de compras. Passo o código do produto como parâmetro no botão:
<h:commandButton value="Comprar" action="compra">
<f:param id="cod_prod" value="#{ProdutoFacade.produto.cod_prod}"/>
<f:actionListener type="loja.AppActionListener"/>
</h:commandButton>
O método dentro do AppActionListener é esse :
public void processAction(ActionEvent event) {
String localValue = (String) ((UICommand) event.getComponent()).getValue();
HibernateUtil.beginTransaction();
Session session = HibernateUtil.currentSession();
ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest)ec.getRequest();
if ("Comprar".equals(localValue)) {
int cod_prod = Integer.parseInt(request.getParameter("cod_prod"));
CarrinhoCompra carrinho = getCarrinho(request);
Produto prodaux = (Produto) produtofacade.getProdutosDetalhes();
Item_Pedido item_pedido = new Item_Pedido(prodaux.getCod_prod(), prodaux.getValor_revenda(), 1);
carrinho.addItem_Pedido(item_pedido);
}
else if ("Pagar".equals(localValue)) {
// insert a record into the database
Pedido pedido = getPedido(request);
CarrinhoCompra carrinho = getCarrinho(request);
if (carrinho!=null && pedido!=null) {
pedidofacade.CriaPedido(pedido, carrinho);
// empty shopping cart
carrinho.removeItem_Pedido();
}
}
}
int cod_prod = Integer.parseInt(request.getParameter("cod_prod"));
Produto prodaux = (Produto) produtofacade.getProdutosDetalhes();
Abraços