No artigo anterior, criamos os arquivos de configuração de nosso projeto. Nesse artigo, focaremos na camada de visualização, em particular no arquivos HTML e códigos JavaScript.
Índice de conteúdo
Parte 1: Introdução e Especificações funcionais
Parte 2: Configuração do MongoDB
Parte 3: Classes Java
Parte 4: Configuração dos arquivos XML
Parte 5: Arquivos HTML (com AJAX)
Parte 6: Executando a aplicação
Arquivos HTML (com AJAX)
Para aperfeiçoar a experiência com o usuário, usaremos o AJAX para tornar a aplicação responsiva. Todas as ações serão executadas na mesma página (sem necessidade de atualizações). Consequentemente, teremos apenas uma página HTML para a aplicação inteira. Todos os outros arquivos serão código JavaScript.
Observe como estruturamos a página HTML. Basicamente, seguimos o conceito de separação de preocupações pela separação das tags de marcação, CSS e código JavaScript. Tentamos o máximo possível tornar o estilo do código JavaScript e do CSS discreto.
Uma olhada mais detalhada
A primeira vista, esse arquivo JSP parece complexo. Pelo contrário, é bem simples. Vamos quebra-lo em partes menores para esclarecimento:
URLs
As seguintes linhas declaram as URLs do modo como são mapeadas pelo UserController. Nós usamos a tag url da taglib para tornar as URLs portáveis.
Importações
Abaixo importamos os arquivos CSS e JavaScript personalizados, junto com o jQuery.
O que é o jQuery?
jQuery é uma biblioteca JavaScript rápida e concisa que simplifica o documento HTML, manipulação de eventos, animações, e interações Ajax para desenvolvimento web rápido. O jQuery é desenhado para mudar a maneira que você escreve JavaScript.
Fonte: http://jquery.com/
Inicialização do JavaScript
Agora nós preparamos as URLs, anexando funções a nossos botões, e carregando a tabela. Esse pedaço do código principal é referenciado a partir de um arquivo JavaScript externo chamado custom.js.
- loadTable(): Executa uma requisição AJAX e popula nossa tabela com os registros
- toggleForms(): Esconde e mostra formulários específicos baseados em um argumento
- toggleCrudButtons(): Esconde e mostra os botões
- hasSelected(): Verifica se um registro foi selecionado
- fillEditForm(): Preenche o formulário ‘Edit’ com detalhes baseados no registro selecionado
- submitDeleteRecord(): Submete uma requisição de remoção via AJAX
- submitNewRecord(): Submete uma requisição de criação de novo registro via AJAX
- submitUpdateRecord(): Submete uma requisição de atualização de registro via AJAX
Tabela e botões
Abaixo segue uma tabela simples para exibição de registros. Os botões tem a função de interagir com os dados.
Formulários
Abaixo segue os formulários usados para adição e remoção de registros.
Previsualização
Se nós executamos nossa aplicação, isso é o que nós veremos: