Beruflich Dokumente
Kultur Dokumente
Apresentao
Especialista em Cincia da Computao pela UFSC;
Graduado em Tecnologia em Informtica pela Unoesc;
Atuao
Scio Camtwo Sistemas;
Desenvolvedor Java desde 2002;
Professor;
Contato
http://about.me/andreforchesatto
andreforchesatto@gmail.com
@forchesatto
Objetivo
Compreender o funcionamento de um
framework Action Based;
Desenvolver utilizando Vraptor como
framework MVC;
Utilizar REST e HTML 5;
Criar aes que utilizam Ajax;
Agenda
Conceito
Caractersticas
Vantagens e Desvantagens
Por onde comear
Funcionamento
Controller
Padres
View
REST
Validatores
Ajax
Indo Alm
Conceito MVC
Conceito
VRaptor 4
Desenvolvido por Guilherme Silveira no IME-USP
em 2003
Verso 2 em 2004
Verso 3 em 2009
Verso 4 em 2014
Mantido principalmente pela Empresa Caelum
Documentao: http://www.vraptor.org
Fontes: https://github.com/caelum/vraptor4/
Livro:http://www.casadocodigo.com.
br/products/livro-vraptor
Caractersticas VRaptor
Caractersticas VRaptor
Caractersticas VRaptor
Caractersticas VRaptor
Vantagens
Framework Brasileiro Open source
Traz alta produtividade e facilidades de
outros mundos (ex. Grails, Rails)
Encapsula a lgica dos Servlets
Baseado em Configurao por Convenso
Utiliza Injeo de Dependncia
Construo de Aes usando Anotaes
Projetos de exemplo:
https://bintray.com/caelum/VRaptor4/br.com.caelum.
vraptor/
Funcionamento
Donwload
<dependency>
<groupId>br.com.caelum</groupId>
<artifactId>vraptor</artifactId>
<version>4.0.0.Final</version>
</dependency>
https://bintray.com/caelum/VRaptor4/br.com.caelum.vraptor/
Estrutura de um Projeto
1 - Controladores Java
2 - Pginas JSP para a VIEW
Conveno:
Para cada controlador temos uma pasta de
mesmo nome e dentro as pginas
representando os mtodos.
Controlador
Utilizado como classe que recebe os dados
da view e coordena as lgicas de negcio;
Por conveno dever ter o sufixo
Controller;
Nome utilizado para registrar o componente
que ser chamado no navegador;
A URL no deve conter o sufixo;
Controlador
Padres
http://localhost:8080/meuProjeto/index/ola.
NomeDoResource = index
Lgica = ola
/WEB-INF/jsp/{nomeDoResource}/{logica}.jsp
View
Converso automtica de tipos;
Classe Result
Disponibiliza valores para a view
Na view: ${nomeVariavel}
Retorno de mtodos tambm podem ser
acessados na view
List<Cliente> todos(){}
view ${clienteList}
Cliente get(){}
view ${cliente}
Padro View
Segue Padro JSP com HTML normal
name dos componentes devero ser os
atributos das classes do modelo
Controller e View
@IncludeParameters
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
Redirecionadores Vraptor
Redirecionadores Vraptor
Prtica
Criar projeto com o maven e configurar;
Criar controlador e pgina bsica;
REST
REST um conjunto de restries que define
um padro arquitetural;
Permitir o endereamento dos recursos do
seu sistema de uma forma padronizada;
Protocolo HTTP no somente como uma
maneira de transmitir dados;
REST
Triangulo REST
Substantivos: Recursos
Verbos: Operaes
GET
POST
PUT
DELETE
HEAD, OPTIONS e TRACE
REST - Verbos
@Post, @Get, @Delete, @Put
GET /produtos => recupera a lista de todos os
produtos.
Mtodo lista.
POST /produtos => adiciona um produto na
lista de todos os produtos.
Mtodo adiciona.
GET /produtos/4 => mostra o produto de id 4.
Mtodo edita.
REST - Verbos
PUT /produtos/10 => atualiza o produto de id
10.
Mtodo atualiza.
DELETE /produtos/3 => remove o produto de
id 3.
Mtodo remove.
REST - Verbos
REST - VIEW
<form action="<c:url value="/produtos/${produto.id }"/>"
method="POST">
Prtica
Mudar lgicas dos controllers e das view para
REST
Validadores
validator.onErrorForwardTo(this).form();
validator.onErrorRedirectTo(this).form();
validator.onErrorUsePageOf(this).form();
validator.onErrorSendBadRequest();
Validadores clssicos
Validadores Fluente
Prtica
Fazer validao utilizando Bean Validation do
Hibernate
Ajax
Asynchronous Javascript and XML
Um conjunto de tecnologias:
HTML
DOM
XHTML
CSS
XML
XSLT
XMLHttpRequest
JavaScript
Ajax
Foi batizado em 2005 pela publicao 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
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;
Ajax - Vraptor
Vraptor pode serializar os valores para JSON
ou XML
Por padro apenas tipos primitivos (String,
Nmeros, Enums, Datas)
Ajax - Formato
{"cliente": {
"nome": "Joao"
}
}
<cliente>
<nome>Joao</nome>
</cliente>
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 vrias
funcionalidades como:
autocomplete
http://api.jqueryui.com/autocomplete/
requisies ajax
http://api.jquery.com/category/ajax/
Prtica
Desenvolver componente autocomplete para
cidade
Indo alm
Interceptadores
Eventos
Conversores
Download e Upload
Como Contribuir
Participando das listas de discusses (guj e
google groups)
Colaborando com a documentao
Reportando bugs e sugerindo novas
funcionalidades
Montando o ambiente
Colaborando com cdigo (github)
Referncias
http://www.vraptor.org/pt/
http://www.casadocodigo.com.
br/products/livro-vraptor
http://getbootstrap.com/
http://api.jquery.com/
http://api.jqueryui.com/