Leitura do carrinho

2 respostas
C

Caros colegas,

Eu por meio de um help anterior consegui fazer um carrinho simples porém da maneira que eu consigo entender para posteriormente aumentá-lo. Porém, agora estou com um problema. Preciso fazer a leitura do objeto session mas quando o item for o mesmo somente aumentar a quantidade.

Alguém consegue sugerir um link?

Esotu conseguindo adicionar os itens ao carrinho, mas não consigo aumentar a quantidade quanto adiciono o mesmo item, mostra o item duplicado.

Bem, eu estou fazendo somente com o objeto de session sem bd.

Arquivo jsp

<a href="Comprar?livro=DominandoAjax&Cod=12"> Dominando Ajax </a></br>
<a href="Comprar?livro=DominandoCSS&Cod=13"> Dominando CSS </a></br>
<a href="Comprar?livro=DominandoXHTML&Cod=14"> Dominando XHTML </a></br>
<a href="Comprar?livro=DominandoJavascript&Cod=15"> Dominando Javacript </a></br>
<a href="Comprar?livro=DominandoEclipse&Cod=16"> Dominando Eclipse </a></br>

Arquivo

String nomeLivro = request.getParameter("livro");
		int codLivro = Integer.parseInt(request.getParameter("Cod"));
		
		Produto produto = new Produto();
		produto.setLivro(nomeLivro);
		produto.setId(codLivro);
		
		//criando um objeto da classe AdicionaItensCarrinho
		
		AdicionaItensCarrinho adProduto = null;
		
		adProduto = new AdicionaItensCarrinho();
		
		//recupera a lista do objeto session		
	
		
		ArrayList rproduto = (ArrayList) request.getSession().getAttribute("lista");
		rproduto = adProduto.AdicionaItensCarrinho(produto, rproduto);
		request.getSession().setAttribute("lista",rproduto);
		
		response.sendRedirect("livros.jsp");

A classe que adicionar os itens

public class AdicionaItensCarrinho {

	public ArrayList AdicionaItensCarrinho(Produto dado, ArrayList lista) {
		// TODO Auto-generated constructor stub
		
		if (lista == null){
			
			lista = new ArrayList();
		}
		
		lista.add(dado.getLivro());
		lista.add(dado.getId());
		
		return lista;
	}

Aqui o meu problema. No jsp eu leio porem não consigo ler individualmente acrescentando a quantidade mesmo que seja por variáveis para o entendimento depois eu acrescento o campo via bean

ArrayList lista = (ArrayList) session.getAttribute("lista");
  	Iterator  i = lista.iterator();
 //	int item = 1;

 	while ( i.hasNext()){
 	  	
 		
 		
 		out.println( i.next()+"<br>");

 }

Agora eu até conseguir porém não atualizando a quantidade (itens) e sim repetindo o item com a quantidade atualizada

saida do jsp

DominandoAjax
12
DominandoAjax
12
DominandoAjax
12
DominandoAjax
12
DominandoCSS
13
DominandoXHTML
14
DominandoJavascript
15

Grato

2 Respostas

drsmachado

Neste caso, você vai precisar verificar, realizando comparação por algum dos atributos do objeto produto (provavelmente o id) se algum elemento do carrinho também tem o mesmo valor para aquele atributo.
Caso sim, você apenas altera a quantidade. Caso não, você insere o item.

C

Eu entendo o conceito, e até tentei, porém o que acontece eu imprimo novamente a lista com o item acrescentado…vc não tem algo parecido que pudesse me mostrar…coisa simples e eu tento aqui…
Grato,

Criado 8 de maio de 2013
Ultima resposta 8 de mai. de 2013
Respostas 2
Participantes 2