Cursos / Informática para Internet / Desenvolvimento Web I / Aula
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 2Por 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
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 3A 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 4Na 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