Add uma lista de produtos para um carrinho

4 respostas
aprJava
Estou fazendo assim:
Produto prod = new Produto();

        List<Produto> pedido = new ArrayList<Produto>();

        if (request.getSession().getAttribute("pedido") != null) {
            pedido = (List<Produto>) request.getSession().getAttribute("pedido");
        } else {
            request.getSession().setAttribute("pedido", pedido);
            pedido = (List<Produto>) request.getSession().getAttribute("pedido");
        }

        IDAO dao = new HDAO();
        
        prod = (Produto) dao.buscar(prod, formulario.getIdProduto());
         
            if (prod.getIdProduto() != 0) {
                pedido.add(prod);
            
         
            request.getSession().setAttribute("pedido", pedido);
            return mapping.findForward("success");
        }else{
    
        return mapping.findForward("error");
    }
}
}
o problema e quando atualizo a pagina F5 sempre add mais um item no carrinho. Não sei como resolver isso o codigo esta ae se alguem tiver uma soluçao melhor mim ajude! grato!

4 Respostas

jweibe

Quanto se faz um submit de forma tradicional, essa situação acontece mesmo… tente fazer o submit usando Ajax.

G

Altere o tipo do objeto da propriedade pedido de List para Set pois ele não permite adicionar elementos duplicados.
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Set.html

aprJava

Dei uma olhada na doc, mais nao consegui entender como posso usar o set nessa situaçao! se voce puder mim da uma ajuda como ficaria esse codigo acima usando o set te agradeseria muito! grato!

aprJava

aprJava:
Dei uma olhada na doc, mais nao consegui entender como posso usar o set nessa situaçao! se voce puder mim da uma ajuda como ficaria esse codigo acima usando o set te agradeseria muito! grato!
lembrando que eu estou pegando essa lista de uma outra lista.

Criado 10 de outubro de 2012
Ultima resposta 11 de out. de 2012
Respostas 4
Participantes 3