Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Desenvolvimento Web I / Aula
A única diferença entre a célula que contém o incremento e a que contém o decremento são a imagem e o valor do parâmetro quantidade (que pode ser 1 ou -1, para incrementar e decrementar, respectivamente).
Outra modificação que precisa ser feita é no código do servlet. Como uma nova operação que não existia antes precisa ser executada (incremento e decremento de quantidade de itens do carrinho), precisamos também modificar o código do ServletControladorLivraria. Neste arquivo iremos melhorar a execução da ação de mostrarCarrinho, conforme o trecho abaixo (que representa somente a parte do código do servlet que foi afetada).
} else if (acaoSelecionada.equals("/livros/mostrarCarrinho")) {
idLivro = request.getParameter("remover");
if (idLivro != null) {
carrinho.remover(idLivro);
}
limpar = request.getParameter("limpar");
if ((limpar != null) && limpar.equals("limpar")) {
carrinho.limpar();
}
idLivro = request.getParameter("alterar");
if (idLivro != null) {
int quantidade = Integer.parseInt(request.getParameter("quantidade"));
if(quantidade == 1){
carrinho.aumentarQuantidade(idLivro);
}
else if(quantidade == -1){
carrinho.diminuirQuantidade(idLivro);
}
}
}
Como podemos ver, nesse incremento da funcionalidade, verificamos se foi solicitada uma alteração (isso é feito verificando se o parâmetro alterar é diferente de null). Caso isso seja verdade, recuperamos a quantidade e avaliamos se é um decremento ou incremento, chamando em seguida o método correto do carrinho de compras. Esses dois novos métodos são aumentarQuantidade() e diminuirQuantidade().
Por fim, iremos modificar a classe CarrinhoCompras para implementar esses dois novos métodos, conforme mostrado no trecho de código abaixo.
public void aumentarQuantidade(String idLivro) {
if (itens.containsKey(idLivro)) {
ItemCompra item = itens.get(idLivro);
item.incrementaQuantidade();
}
}
public void diminuirQuantidade(String idLivro) {
if (itens.containsKey(idLivro)) {
ItemCompra item = itens.get(idLivro);
item.decrementaQuantidade();
}
}
Versão 5.3 - Todos os Direitos reservados