Cursos / Informática para Internet / Desenvolvimento Web I / Aula

arrow_back Aula 13 - Desenvolvendo uma livraria virtual – Parte 2

Catálogo de livros III

Voltando para o arquivo catalogo.jsp, a segunda parte de seu código é mostrada na Listagem 4.2. Observe a declaração de uso do LivrariaBean nas linhas 25 a 27. O marcador <jsp:useBean > indica a classe do bean a ser instanciado (já que o escopo é page, o bean será instanciado em cada acesso). O identificador do bean (atributo id) é livrariaBean, o qual é utilizado no restante do arquivo para referenciar o bean. Sua propriedade de nome sistema é configurada com o valor da expressão ${sistemaLivraria}, o qual irá retornar o atributo do contexto dos Servlets de nome “sistemaLivraria”. Relembrando, esse atributo é criado pela classe LivrariaContextListener, vista anteriormente, e referencia a instância criada para o sistema (objeto Livraria).

Listagem 4.2 - Código-fonte do arquivo catalogo.jsp – Parte 2

Por questões didáticas, as linhas 29 a 36 desse arquivo, que são relacionadas ao parâmetro da requisição Add, serão apresentadas no final da aula. Com relação ao código mostrado na Listagem 4.3, ele é responsável por mostrar o conteúdo do carrinho de compras. Usamos um marcador para simular uma instrução if-then-else. Na linha 38, é testado se o atributo numeroItens do objeto carrinho de compras (propriedade cart da sessão) possui valor maior que zero, ou seja, testa se existe pelo menos um item no carrinho de compras. Caso esse teste seja satisfeito (verdadeiro), o conteúdo das linhas 39 a 45 serão executados. Um link de nome url será criado com valor /livros/mostrarCarrinho, passando os parâmetros limpar e remover com valor igual a 0. Esse link levará a página que apresenta o conteúdo do carrinho de compras (linha 43), a qual será vista na próxima aula. Já as linhas 44 e 45 criam um link para a página de compra dos itens encontrados no carrinho. Essa página também será vista em outra aula.

Caso não existam itens no carrinho de compras, ou seja, o atributo numeroItens do carrinho de compras seja igual a 0, a mensagem “Seu carrinho de compras está vazio.” será apresentada, conforme mostrado nas linhas 47 a 49.

Listagem 4.3 - Código-fonte do arquivo catalogo.jsp – Parte 3

A próxima parte do código, mostrado na Listagem 4.4, é responsável por mostrar a lista de livros disponíveis para compra. Para cada livro serão mostradas informações e links para se visualizar os detalhes do livro e para se adicionar o livro no carrinho de compras. Para isso, usamos o marcador <c:forEach >, visto na linha 58. Observe que a coleção de objetos utilizada no comando for é determinada pela expressão ${livrariaBean.livros}, ou seja, pelo retorno do método getLivros() do objeto livrariaBean. Cada objeto dessa coleção será armazenado na variável de nome livro e utilizado em comandos como o da linha 60, que pega o atributo idLivro e armazena seu valor em uma variável local também chamada de idLivro. A criação de um link para a página de apresentação dos detalhes do livro é mostrada nas linhas 62 a 64, adicionando como parâmetro a variável idLivro.

A linha 65 é responsável por apresentar o título do livro que está selecionado pelo marcador <c:forEach >. Já na linha 68, temos o uso do marcador <fmt:formatNumber > para apresentar o preço do livro como moeda. Isso fará a inclusão do símbolo $ antes do número e o uso de duas casas decimais para apresentação do valor.

Listagem 4.4 - Código-fonte do arquivo catalogo.jsp – Parte 4

Na linha 72, temos a criação de uma URL para a própria página de catálogo, passando o parâmetro Add com valor igual ao identificador do livro (idLivro) que o usuário tenha selecionado. Isso representa a adição desse item ao carrinho de compras. Muito bem! Finalmente chegamos ao uso do parâmetro Add. Ele é utilizado para indicar o livro que o usuário quer adicionar ao carrinho de compras. Essa operação é realizada adicionando-se o seguinte trecho de código ao Servlet controlador, logo após a linha 32 da classe ServletControladorLivraria mostrada na Listagem 2:

Esse código verifica se a ação selecionada (representada pela parte final da URL acessada) é igual a “/livros/catalogo” (parâmetros da requisição não entram aqui). Sendo o caso, pega-se o valor do parâmetro Add e, se ele não for vazio, busca-se o livro por meio do objeto livraria e o adiciona ao carrinho de compras. A busca do livro pode gerar uma exceção, o que não deve ocorrer normalmente, pois o código do livro é escrito no link de forma automática pelo sistema. Caso aconteça a exceção devido a um acesso indevido por um hacker, por exemplo, ela fará com que a operação de adição do livro no carrinho não ocorra, sem comprometer a geração da página de resposta.

Versão 5.3 - Todos os Direitos reservados