Carrinho adicionando itens ao atualizar página

2 respostas
S
Estou com um problemão, criei um processo de venda, no final do processo onde exibo uma tela com a escolha da forma de pagamento é listado todos os itens adicionados, se pressiono F5 para atualizar a página o método da página anterior que chamaa tela da lista é chamado de novo, nesse método faz busca do úlitmo produto que foi adicionado e põe na lista, o que está acontecendo é que quando atualizo a tela com a lista o método é chamado de novo e o úlitmo item é inserido na lista.
public String pagamento(){
		
		itens_vendas = new ArrayList<Item_Venda>();
		itens_vendas = (List<Item_Venda>) getSession().get("listaProdutos");
		
		item_venda = new Item_Venda();
		produto = ProdutoDAO.getInstance().buscaPorId(codigo_produto);
		if (produto.getQuantidade_atual() < Integer.parseInt(qtdCompra)){
			mensagem = "Quantidade superior a quantidade disponível.";
			return "empilha";
		}
		item_venda.setProduto(produto);
		item_venda.setValor(produto.getValor_venda());
		item_venda.setQuantidade_produtos(Integer.parseInt(qtdCompra));
		itens_vendas.add(item_venda);
		
		getSession().put("listaProdutos", itens_vendas);		
		
		//Montando lista da tela de pagamento
		lista_venda = new ArrayList<VendaActionForm>();
		
		itens_vendas = new ArrayList<Item_Venda>();
		itens_vendas = (List<Item_Venda>) getSession().get("listaProdutos");
		
		VendaActionForm vendaActionForm;
		totalVenda = 0.0;
		for(Item_Venda item_venda : itens_vendas) {  
			vendaActionForm = new VendaActionForm(item_venda.getProduto().getNome(),  String.valueOf(item_venda.getQuantidade_produtos())
													,String.valueOf(new DecimalFormat("00.00").format(item_venda.getProduto().getValor_venda())),
													String.valueOf(new DecimalFormat("00.00").format(item_venda.getQuantidade_produtos() * item_venda.getProduto().getValor_venda())));
			
			totalVenda = totalVenda + (item_venda.getQuantidade_produtos() * item_venda.getProduto().getValor_venda());
			lista_venda.add(vendaActionForm);
		}
		totalVendaFormatada = new DecimalFormat("00.00").format(totalVenda);
		return "formaPagamento";
	}

2 Respostas

drsmachado

Bom, é um comportamento normal a execução do último processo ao atualizar uma página.
Você está criando isso usando jsp, servlet, algum framework?

S

Esqueci de colocar os frameworks, estou struts 2 + hibernate.

Criado 6 de junho de 2012
Ultima resposta 6 de jun. de 2012
Respostas 2
Participantes 2