2. Apresentação
● Especialista em Ciência da Computação pela UFSC;
● Graduado em Tecnologia em Informática pela Unoesc;
● Atuação
○ Sócio Camtwo Sistemas;
○ Desenvolvedor Java desde 2002;
○ Professor;
● Contato
○ http://about.me/andreforchesatto
○ andreforchesatto@gmail.com
○ @forchesatto
3. Objetivo
● Compreender o funcionamento de um
framework Action Based;
● Desenvolver utilizando Vraptor como
framework MVC;
● Utilizar REST e HTML 5;
● Criar ações que utilizam Ajax;
4. Agenda
● Conceito
● Características
● Vantagens e Desvantagens
● Por onde começar
● Funcionamento
○ Controller
○ Padrões
○ View
○ REST
○ Validatores
○ Ajax
● Indo Além
6. O VRaptor 4 traz alta produtividade
para um desenvolvimento Java Web
rápido e fácil com CDI.
É um framework MVC opensource
com grande comunidade de
desenvolvedores e usuários!
Conceito
7. ● Desenvolvido por Guilherme Silveira no IME-USP
em 2003
● Versão 2 em 2004
● Versão 3 em 2009
● Versão 4 em 2014
● Mantido principalmente pela Empresa Caelum
● Documentação: http://www.vraptor.org
● Fontes: https://github.com/caelum/vraptor4/
● Livro:http://www.casadocodigo.com.
br/products/livro-vraptor
VRaptor 4
12. Vantagens
● Framework Brasileiro Open source
● Traz alta produtividade e facilidades de
outros mundos (ex. Grails, Rails)
● Encapsula a lógica dos Servlets
● Baseado em Configuração por Convensão
● Utiliza Injeção de Dependência
● Construção de Ações usando Anotações
13. Por onde começar
● http://www.vraptor.org
● http://www.vraptor.org/pt/docs/guia-de-1-minuto/
● http://www.vraptor.org/pt/docs/guia-de-10-minutos/
● Projetos de exemplo:
○ https://bintray.com/caelum/VRaptor4/br.com.caelum.
vraptor/
16. Estrutura de um Projeto
1 - Controladores Java
2 - Páginas JSP para a VIEW
Convenção:
Para cada controlador temos uma pasta de
mesmo nome e dentro as páginas
representando os métodos.
17. Controlador
● Utilizado como classe que recebe os dados
da view e coordena as lógicas de negócio;
● Por convenção deverá ter o sufixo
Controller;
● Nome utilizado para registrar o componente
que será chamado no navegador;
● A URL não deve conter o sufixo;
18. Controlador
1 - Anotação indicado que a classe é um
controlador.
2 - Injeção de dependência
3 - Método que pode ser acessado na URL
20. View
● Conversão automática de tipos;
● Classe Result
○ Disponibiliza valores para a view
○ Na view: ${nomeVariavel}
● Retorno de métodos também podem ser
acessados na view
○ List<Cliente> todos(){}
■ view ${clienteList}
○ Cliente get(){}
■ view ${cliente}
21. Padrão View
● Segue Padrão JSP com HTML normal
● name dos componentes deverão ser os
atributos das classes do modelo
24. Redirecionamento e Foward
● Redirect
○ Acontece do lado do cliente, fará o browser acessar
uma nova URL;
● Foward
○ Acontece do lado do servidor transparente para o
cliente/browser
28. REST
● REST é um conjunto de restrições que define
um padrão arquitetural;
● Permitir o endereçamento dos recursos do
seu sistema de uma forma padronizada;
● Protocolo HTTP não somente como uma
maneira de transmitir dados;
29. REST
● Triangulo REST
○ Substantivos: Recursos
○ Verbos: Operações
■ GET
■ POST
■ PUT
■ DELETE
■ HEAD, OPTIONS e TRACE
○ Content Type: Representação
30. Melhorando a URI para REST
● @Path redefine o padrão Vraptor de acesso a
lógica
● Pode ser utilizado template no @Path {id}
31. REST - Verbos
● @Post, @Get, @Delete, @Put
● GET /produtos => recupera a lista de todos os
produtos.
○ Método lista.
● POST /produtos => adiciona um produto na
lista de todos os produtos.
○ Método adiciona.
● GET /produtos/4 => mostra o produto de id 4.
○ Método edita.
32. REST - Verbos
● PUT /produtos/10 => atualiza o produto de id
10.
○ Método atualiza.
● DELETE /produtos/3 => remove o produto de
id 3.
○ Método remove.
42. Ajax
● Asynchronous Javascript and XML
● Um conjunto de tecnologias:
○ HTML
○ DOM
○ XHTML
○ CSS
○ XML
○ XSLT
○ XMLHttpRequest
○ JavaScript
43. Ajax
● Foi batizado em 2005 pela publicação do
artigo “Ajax: A New Approach to Web
Application” Escrito por Jossé James Garret
● Ajax pode ser usado com Java, Php, Ruby,
etc..
● Ajax = Javascript rodando no browse e se
comunicando com o servidor
46. Por que usar AJAX
● Respostas mais rápidas;
● Economia na banda do servidor;
● Maior interatividade;
47. Ajax - Vraptor
● Só trabalha na parte servidora;
● Pode ser utilizado qualquer framework
javaScript para fazer a parte cliente;
● Auxilia bastante na hora de gerar o JSON
para o retorno do Ajax;
48. Ajax - Vraptor
● Vraptor pode serializar os valores para JSON
ou XML
● Por padrão apenas tipos primitivos (String,
Números, Enums, Datas)
50. Ajax - View
● Baixar o Jquery ui
○ http://jqueryui.com/
● Colocar na pasta webapp/static/js
● Declarar no final antes do </body> o arquivo
● Pode ser utilizado para desenvolver várias
funcionalidades como:
○ autocomplete
■ http://api.jqueryui.com/autocomplete/
○ requisições ajax
■ http://api.jquery.com/category/ajax/
53. Como Contribuir
● Participando das listas de discussões (guj e
google groups)
● Colaborando com a documentação
● Reportando bugs e sugerindo novas
funcionalidades
● Montando o ambiente
● Colaborando com código (github)