introducao a vraptor 4 pos java utfpr

54
Introdução a Vraptor 4 André Luiz Forchesatto

Upload: leomir-andrade

Post on 08-Dec-2015

28 views

Category:

Documents


1 download

DESCRIPTION

Vraptor

TRANSCRIPT

Page 1: Introducao a Vraptor 4 Pos Java Utfpr

Introdução a Vraptor 4André Luiz Forchesatto

Page 2: Introducao a Vraptor 4 Pos Java Utfpr

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

Page 3: Introducao a Vraptor 4 Pos Java Utfpr

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;

Page 4: Introducao a Vraptor 4 Pos Java Utfpr

Agenda● Conceito● Características● Vantagens e Desvantagens● Por onde começar● Funcionamento

○ Controller○ Padrões○ View○ REST○ Validatores○ Ajax

● Indo Além

Page 5: Introducao a Vraptor 4 Pos Java Utfpr

Conceito MVC

Page 6: Introducao a Vraptor 4 Pos Java Utfpr

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

Page 7: Introducao a Vraptor 4 Pos Java Utfpr

● 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

Page 8: Introducao a Vraptor 4 Pos Java Utfpr

Características VRaptor

Page 9: Introducao a Vraptor 4 Pos Java Utfpr

Características VRaptor

Page 10: Introducao a Vraptor 4 Pos Java Utfpr

Características VRaptor

Page 11: Introducao a Vraptor 4 Pos Java Utfpr

Características VRaptor

Page 12: Introducao a Vraptor 4 Pos Java Utfpr

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

Page 13: Introducao a Vraptor 4 Pos Java Utfpr

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/

Page 14: Introducao a Vraptor 4 Pos Java Utfpr

Funcionamento

Page 15: Introducao a Vraptor 4 Pos Java Utfpr

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/

Page 16: Introducao a Vraptor 4 Pos Java Utfpr

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.

Page 17: Introducao a Vraptor 4 Pos Java Utfpr

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;

Page 18: Introducao a Vraptor 4 Pos Java Utfpr

Controlador

1 - Anotação indicado que a classe é um controlador.2 - Injeção de dependência3 - Método que pode ser acessado na URL

Page 19: Introducao a Vraptor 4 Pos Java Utfpr

Padrões

/WEB-INF/jsp/{nomeDoResource}/{logica}.jsp

http://localhost:8080/meuProjeto/index/ola.

NomeDoResource = indexLógica = ola

Page 20: Introducao a Vraptor 4 Pos Java Utfpr

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}

Page 21: Introducao a Vraptor 4 Pos Java Utfpr

Padrão View● Segue Padrão JSP com HTML normal● name dos componentes deverão ser os

atributos das classes do modelo

Page 22: Introducao a Vraptor 4 Pos Java Utfpr

Controller e View

Page 23: Introducao a Vraptor 4 Pos Java Utfpr

@IncludeParameters

Page 24: Introducao a Vraptor 4 Pos Java Utfpr

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

Page 25: Introducao a Vraptor 4 Pos Java Utfpr

Redirecionadores Vraptor

Page 26: Introducao a Vraptor 4 Pos Java Utfpr

Redirecionadores Vraptor

Page 27: Introducao a Vraptor 4 Pos Java Utfpr

Prática

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

Page 28: Introducao a Vraptor 4 Pos Java Utfpr

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;

Page 29: Introducao a Vraptor 4 Pos Java Utfpr

REST

● Triangulo REST○ Substantivos: Recursos○ Verbos: Operações

■ GET■ POST■ PUT■ DELETE■ HEAD, OPTIONS e TRACE

○ Content Type: Representação

Page 30: Introducao a Vraptor 4 Pos Java Utfpr

Melhorando a URI para REST

● @Path redefine o padrão Vraptor de acesso a lógica

● Pode ser utilizado template no @Path {id}

Page 31: Introducao a Vraptor 4 Pos Java Utfpr

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.

Page 32: Introducao a Vraptor 4 Pos Java Utfpr

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.

Page 33: Introducao a Vraptor 4 Pos Java Utfpr

REST - Verbos

Page 34: Introducao a Vraptor 4 Pos Java Utfpr

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

Page 35: Introducao a Vraptor 4 Pos Java Utfpr

Prática

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

Page 36: Introducao a Vraptor 4 Pos Java Utfpr

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();

Page 37: Introducao a Vraptor 4 Pos Java Utfpr

Validadores clássicos

Page 38: Introducao a Vraptor 4 Pos Java Utfpr

Validadores Fluente

Page 39: Introducao a Vraptor 4 Pos Java Utfpr

Validadores Bean Validation

Page 40: Introducao a Vraptor 4 Pos Java Utfpr

Mostrar erros na página

Page 41: Introducao a Vraptor 4 Pos Java Utfpr

Prática

● Fazer validação utilizando Bean Validation do Hibernate

Page 42: Introducao a Vraptor 4 Pos Java Utfpr

Ajax

● Asynchronous Javascript and XML● Um conjunto de tecnologias:

○ HTML○ DOM○ XHTML○ CSS○ XML○ XSLT○ XMLHttpRequest○ JavaScript

Page 43: Introducao a Vraptor 4 Pos Java Utfpr

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

Page 44: Introducao a Vraptor 4 Pos Java Utfpr

Como funciona o AJAX

Page 45: Introducao a Vraptor 4 Pos Java Utfpr

Como funciona o AJAX

Page 46: Introducao a Vraptor 4 Pos Java Utfpr

Por que usar AJAX

● Respostas mais rápidas;● Economia na banda do servidor;● Maior interatividade;

Page 47: Introducao a Vraptor 4 Pos Java Utfpr

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;

Page 48: Introducao a Vraptor 4 Pos Java Utfpr

Ajax - Vraptor

● Vraptor pode serializar os valores para JSON ou XML

● Por padrão apenas tipos primitivos (String, Números, Enums, Datas)

Page 49: Introducao a Vraptor 4 Pos Java Utfpr

Ajax - Formato

{"cliente": { "nome": "Joao" }}

<cliente> <nome>Joao</nome></cliente>

Page 50: Introducao a Vraptor 4 Pos Java Utfpr

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/

Page 51: Introducao a Vraptor 4 Pos Java Utfpr

Prática

● Desenvolver componente autocomplete para cidade

Page 52: Introducao a Vraptor 4 Pos Java Utfpr

Indo além

● Interceptadores● Eventos● Conversores● Download e Upload

Page 53: Introducao a Vraptor 4 Pos Java Utfpr

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)

Page 54: Introducao a Vraptor 4 Pos Java Utfpr

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/