Introdução a Vraptor 4 André Luiz Forchesatto Forchesatto
Apresentação ● Especi Especiali alista sta em Ciênci Ciência a da da Comp Computa utação ção pela pela UFSC UFSC;; ● Gradua Graduado do em Tecnol Tecnologi ogia a em em Info Informá rmátic tica a pela pela Unoesc Unoesc;; ● Atuação ○ Sócio ócio Camtw amtwo o Sis iste tema mas; s; ○ Dese Desenv nvol olve vedo dorr Jav Java a des desde de 2002 2002;; ○ Professor; ● Contato ○ http http:/ ://a /abo bout ut.m .me/ e/an andr dref efor orch ches esat atto to ○ andr andref efor orch ches esat atto to@g @gma mailil.c .com om ○ @forchesatto
Apresentação ● Especi Especiali alista sta em Ciênci Ciência a da da Comp Computa utação ção pela pela UFSC UFSC;; ● Gradua Graduado do em Tecnol Tecnologi ogia a em em Info Informá rmátic tica a pela pela Unoesc Unoesc;; ● Atuação ○ Sócio ócio Camtw amtwo o Sis iste tema mas; s; ○ Dese Desenv nvol olve vedo dorr Jav Java a des desde de 2002 2002;; ○ Professor; ● Contato ○ http http:/ ://a /abo bout ut.m .me/ e/an andr dref efor orch ches esat atto to ○ andr andref efor orch ches esat atto to@g @gma mailil.c .com om ○ @forchesatto
Objetivo ● Comp Compre reen ende derr o func funcio iona name ment nto o de um framework Action Based; ● Dese Desenv nvol olve verr uti utililiza zand ndo o Vra Vrapt ptor or como como framework MVC; ● Util tilizar RE REST e HTML 5; 5; ● Cria Criarr açõ ações es que que uti utililiza zam m Aja Ajax; x;
Agenda ● ● ● ● ●
Conceito Características Vanta ntagens gens e De Desv svan anta tag gens ens Por on onde co começar Funcionamento ○ ○ ○ ○ ○ ○
Controller Padrões View REST Validatores Ajax
● Indo Além
Conceito MVC
Conceito
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!
VRaptor 4 ● 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
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/
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
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 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;
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 Remover
Enviar
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: ○ ○ ○ ○
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" } }
Joao
Ajax - View ● Baixar o Jquery ui ○ http://jqueryui.com/ ● Colocar na pasta webapp/static/js ● Declarar no final antes do 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)
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.