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

arrow_back Aula 13 - Desenvolvendo uma livraria virtual – Parte 2

Catálogo de livros II

Vamos agora estudar o conteúdo desse arquivo, o qual será apresentado aos poucos, iniciando-se pela Listagem 4.1. Nas primeiras duas linhas do arquivo, vemos a declaração das taglibs c e fmt. Em seguida, temos a montagem da parte superior da tela, a qual é a mesma da tela inicial do sistema e de todas as outras. Isso quer dizer que estamos duplicando código, não é mesmo? Duplicar código significa aumentar, desnecessariamente, o tamanho do código-fonte, além de dificultar a manutenção e entendimento do sistema. Mas, não se preocupe, na próxima aula, depois de entender bem o código da tela de catálogo, veremos como tratar esse problema!

x
1
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
2
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
3
4
<html>
5
    <head>
6
        <title>
7
            Minha Livraria Virtual
8
        </title>
9
    </head>
10
    <body bgcolor="#FFFFFF">
11
        <center> 
12
            <hr>
13
            <br>
14
            <h1> 
15
                <img width="50" src="../imagem/livro.gif">
16
                <font size="+3">Minha Livraria Virtual</font> 
17
                <img width="50" src="../imagem/livro.gif">
18
            </h1> 
19
        </center>
20
            <br>
21
            <hr>
Listagem 4.1 - Código-fonte do arquivo catalogo.jsp – Parte 1

O restante do conteúdo do arquivo catalogo.jsp irá acessar o sistema da livraria virtual para fazer consulta a livros disponíveis etc. Essas consultas exigirão o uso da classe LivrariaBean, mostrada na Listagem 5. Essa classe representa um bean que irá implementar as operações necessárias para a execução do arquivo JSP. Podemos ver que essa classe tem como atributo o próprio sistema da livraria (atributo sistema, do tipo Livraria) e um atributo idLivro do tipo String. O primeiro atributo receberá, como veremos adiante, o objeto Livraria armazenado no contexto dos Servlets. Já o segundo atributo representa o identificador do livro escolhido pelos usuários em operações como adicionar um livro ao carrinho.

Observe nessa classe como funciona os métodos getLivro() e getLivros(). O primeiro retorna o objeto do tipo Livro, que possui identificador igual ao do atributo idLivro. Já o segundo método retorna todos os livros em estoque na livraria. Por fim, temos o método comprarLivros(), que realiza a compra dos livros existentes no carrinho de compras recebido como parâmetro. Esses métodos fazem uma “ponte”, ou seja, uma interligação entre o código dos arquivos JSP e o sistema (classe Livraria). Dessa forma seu código fica mais organizado, isolando a camada de apresentação de HTML (no JSP), as ações a serem realizadas no LivrariaBean e mantém o processamento dos dados na classe Livraria. Veremos seu uso à medida que apresentamos os códigos JSP.

34
1
package livraria.negocio;
2
3
import java.util.List;
4
5
import livraria.negocio.excecoes.CompraException;
6
import livraria.negocio.excecoes.LivroNaoEncontradoException;
7
8
public class LivrariaBean {
9
    private Livraria sistema = null;
10
    private String idLivro = "0";
11
12
    public LivrariaBean() {
13
    }
14
15
    public void setIdLivro(String id) {
16
        this.idLivro = id;
17
    }
18
19
    public void setSistema(Livraria livraria) {
20
        this.sistema = livraria;
21
    }
22
23
    public Livro getLivro() throws LivroNaoEncontradoException {
24
        return (Livro) sistema.getLivro(idLivro);
25
    }
26
27
    public List<Livro> getLivros() {
28
        return sistema.getLivros();
29
    }
30
31
    public void comprarLivros(CarrinhoCompras cart) throws CompraException {
32
        sistema.comprarLivros(cart);
33
    }
34
}
Listagem 5 - Código da classe LivrariaBean

Versão 5.3 - Todos os Direitos reservados