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

1.655 visualizações

Publicada em

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

Publicada em: Educação
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.655
No SlideShare
0
A partir de incorporações
0
Número de incorporações
47
Ações
Compartilhamentos
0
Downloads
86
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Introdução a Vraptor 4 André Luiz Forchesatto
  2. 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. 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. 4. Agenda ● Conceito ● Características ● Vantagens e Desvantagens ● Por onde começar ● Funcionamento ○ Controller ○ Padrões ○ View ○ REST ○ Validatores ○ Ajax ● Indo Além
  5. 5. Conceito MVC
  6. 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. 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
  8. 8. Características VRaptor
  9. 9. Características VRaptor
  10. 10. Características VRaptor
  11. 11. Características VRaptor
  12. 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. 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/
  14. 14. Funcionamento
  15. 15. 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/
  16. 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. 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. 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
  19. 19. Padrões /WEB-INF/jsp/{nomeDoResource}/{logica}.jsp http://localhost:8080/meuProjeto/index/ola. NomeDoResource = index Lógica = ola
  20. 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. 21. Padrão View ● Segue Padrão JSP com HTML normal ● name dos componentes deverão ser os atributos das classes do modelo
  22. 22. Controller e View
  23. 23. @IncludeParameters
  24. 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
  25. 25. Redirecionadores Vraptor
  26. 26. Redirecionadores Vraptor
  27. 27. Prática ● Criar projeto com o maven e configurar; ● Criar controlador e página básica;
  28. 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. 29. REST ● Triangulo REST ○ Substantivos: Recursos ○ Verbos: Operações ■ GET ■ POST ■ PUT ■ DELETE ■ HEAD, OPTIONS e TRACE ○ Content Type: Representação
  30. 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. 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. 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.
  33. 33. REST - Verbos
  34. 34. 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">
  35. 35. Prática ● Mudar lógicas dos controllers e das view para REST
  36. 36. 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();
  37. 37. Validadores clássicos
  38. 38. Validadores Fluente
  39. 39. Validadores Bean Validation
  40. 40. Mostrar erros na página
  41. 41. Prática ● Fazer validação utilizando Bean Validation do Hibernate
  42. 42. Ajax ● Asynchronous Javascript and XML ● Um conjunto de tecnologias: ○ HTML ○ DOM ○ XHTML ○ CSS ○ XML ○ XSLT ○ XMLHttpRequest ○ JavaScript
  43. 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
  44. 44. Como funciona o AJAX
  45. 45. Como funciona o AJAX
  46. 46. Por que usar AJAX ● Respostas mais rápidas; ● Economia na banda do servidor; ● Maior interatividade;
  47. 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. 48. Ajax - Vraptor ● Vraptor pode serializar os valores para JSON ou XML ● Por padrão apenas tipos primitivos (String, Números, Enums, Datas)
  49. 49. Ajax - Formato {"cliente": { "nome": "Joao" } } <cliente> <nome>Joao</nome> </cliente>
  50. 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/
  51. 51. Prática ● Desenvolver componente autocomplete para cidade
  52. 52. Indo além ● Interceptadores ● Eventos ● Conversores ● Download e Upload
  53. 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)
  54. 54. 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/

×