Aula Introdução a VRaptor 4 - Pós Java UTFPR

andreforchesatto 2,288 views 54 slides Aug 01, 2014
Slide 1
Slide 1 of 54
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54

About This Presentation

Apresentação aula introdução a VRaptor 4 na pós graduação UTFPR Pato Branco.
VRaptor 4 + CDI + EJB + WildFly
Código fonte do projeto template: https://github.com/forchesatto/posJavaUtfpr


Slide Content

Introdução a Vraptor 4
André Luiz Forchesatto

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
[email protected]
○@forchesatto

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;

Agenda
●Conceito
●Características
●Vantagens e Desvantagens
●Por onde começar
●Funcionamento
○Controller
○Padrões
○View
○REST
○Validatores
○Ajax
●Indo Além

Conceito MVC

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

●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

Características VRaptor

Características VRaptor

Características VRaptor

Características VRaptor

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

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/

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 - 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.

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;

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

Padrões
/WEB-INF/jsp/{nomeDoResource}/{logica}.jsp

http://localhost:8080/meuProjeto/index/ola.
NomeDoResource = index
Lógica = ola

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}

Padrão View
●Segue Padrão JSP com HTML normal
●name dos componentes deverão 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

Prática
●Criar projeto com o maven e configurar;
●Criar controlador e página básica;

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;

REST
●Triangulo REST
○Substantivos: Recursos
○Verbos: Operações
■GET
■POST
■PUT
■DELETE
■HEAD, OPTIONS e TRACE
○Content Type: Representação

Melhorando a URI para REST
●@Path redefine o padrão Vraptor de acesso a
lógica
●Pode ser utilizado template no @Path {id}

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.

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.

REST - Verbos

REST - VIEW
<button class="link" name="_method"value="DELETE">Remover</button>
<button type="submit" name="_method" value="PUT">Enviar</button>
<form action="<c:url value="/produtos/${produto.id }"/>"
method="POST">

Prática
●Mudar lógicas dos controllers e das view para
REST

Validadores
●Classe Validator deve ser injetada
●Estilo clássico
●Estilo fluente
●Bean Validation
●Redirecionamento:
○validator.onErrorForwardTo(this).form();
○validator.onErrorRedirectTo(this).form();
○validator.onErrorUsePageOf(this).form();
○validator.onErrorSendBadRequest();

Validadores clássicos

Validadores Fluente

Validadores Bean Validation

Mostrar erros na página

Prática
●Fazer validação 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 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

Como funciona o AJAX

Como funciona o AJAX

Por que usar AJAX
●Respostas mais rápidas;
●Economia na banda do servidor;
●Maior interatividade;

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 padrão apenas tipos primitivos (String,
Números, 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 várias
funcionalidades como:
○autocomplete
■http://api.jqueryui.com/autocomplete/
○requisições ajax
■http://api.jquery.com/category/ajax/

Prática
●Desenvolver componente autocomplete para
cidade

Indo além
●Interceptadores
●Eventos
●Conversores
●Download e Upload

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)

Referências
●http://www.vraptor.org/pt/
●http://www.casadocodigo.com.
br/products/livro-vraptor
●http://getbootstrap.com/
●http://api.jquery.com/
●http://api.jqueryui.com/